首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Saxon-JS2.1检查DOM classList是否包含特定的类

使用Saxon-JS2.1检查DOM classList是否包含特定的类
EN

Stack Overflow用户
提问于 2021-05-04 03:16:26
回答 1查看 54关注 0票数 1

Saxon-JS不仅支持在浏览器中运行XSLT,还支持读写HTML内容。使用JavaScript,可以通过以下方法检查元素类列表中是否包含一个“已编辑”的类

代码语言:javascript
复制
document.getElementById(id).classList.contains('edited')

但是如何使用Saxon-JS 2.1实现这一点呢?

可能的方法似乎是

ixsl:get($node, 'class'),但我不知道如何通过id指定节点(这将返回整个类列表)

ixsl:eval('document.getElementById({$id}).classList.contains('edited')'),但我认为使用{$id}是不受支持的,‘编辑’使用的撇号已经用于包含eval参数和整个xpath语句(这里不包括)的撇号。所以单引号和双撇号都不能使用。

在这里,我得到了一个错误,声明“没有为xs:ixsl:eval(document.getElementById('+$id+').classList.contains('+$class+')')类型的参数定义算术运算符”。

ixsl:eval(concat('document.getElementById(',$id,').classList.contains(',$class,')')),但即使这样也不起作用。它被编译成sef,但在运行时出现错误"cannot read property of null“。

我知道我可以在HTML页面中编写一个JavaScript函数并调用自己的函数,但我希望在XSLT脚本中完成它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-04 05:49:03

如果想要返回符合该条件的任何XML元素,只需使用标准的XPath表达式:

代码语言:javascript
复制
//*[@id eq $id][contains-token(@class, 'edited')]

请参阅:fn:contains-token

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67374605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档