根据元素是否包含文本,为元素设置不同的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据元素是否包含文本,为元素设置不同的值相关的知识,希望对你有一定的参考价值。

我需要不时地为我的老板做一组布局的小路径调整。我对Xpath的了解非常有限,如果我无法全面描述所有内容,请原谅我。

我的问题:

我想为元素“table-title”的行高设置不同的值,具体取决于元素“table-title”是否包含任何文本。我无法检查元素“table-title”是否完全为空,因为它可能包含元素“meta-ref”,即使没有后续文本也是如此。

我使用{ctrl:If(x,'y','z')}来设置基于条件是否满足的值,条件为“x”,如果满足则值为“y”和“ z“如果不满足。这就是我尝试过的:{ctrl:If(table-title[contains(text(),'')],'0.1%','100%')}

我正在使用的代码在</meta-ref>之后没有文本。但为了显示文本的出现位置,我在此处添加了它。

<table-container>
    <table-title>
        <meta-ref @name="Layoutmarker>'TableGrid'</meta-ref>This is a table title text.
    </table-title>
</table-container>

当元素“table-title”中没有文本时,我希望行高为0.1%,有时为100%。我希望结果是0.1%,但它实际上是100%,即使没有文字。

答案

很抱歉打开这个问题。我一直在变得绝望,因为我几天都找不到解决方案,但这里是:

{ctrl:If(self::table-title[not(text())],'0.1%','100%')}

当表标题不包含任何文本时,这会成功地将行高减少到0.1%。

以上是关于根据元素是否包含文本,为元素设置不同的值的主要内容,如果未能解决你的问题,请参考以下文章

相对位置元素超出 CSS 中的值

JavaScript单行代码,也就是代码片段

Python错误为不同循环设置具有序列的数组元素[重复]

jquery 怎么获取文本框输入的值

SwiftUI - 如何根据列表为文本设置不同的值

不同活动的片段之间的共享元素转换