【问题标题】:Select elements by attributes with ":" (colon)使用 \":\"(冒号)按属性选择元素
【发布时间】:2022-11-23 09:11:07
【问题描述】:

在我的项目中,有一个库生成元素的情况,我需要从那里选择特定的元素——恰好包含一个带有“:”的属性。
换句话说,我最终尝试选择使用:document.querySelectorAll("[xml:space]")
但是,当在 Chrome 中测试时,它不起作用,也没有选择使用 document.querySelectorAll("['xml:space']") - 他们都抛出了一个 DOMException
http://i.imgur.com/GrjpL85.png

我的问题是,如何使上述选择器返回具有xml:space 属性的元素列表?
谢谢!

【问题讨论】:

标签: javascript css attributes


【解决方案1】:

你需要逃离冒号

document.querySelectorAll('[xml\3A space]')

我用https://mothereff.in/css-escapes 得到上面的代码:)

【讨论】:

    【解决方案2】:

    通过在 : 前面加上双反斜杠 \ 来转义 :

    document.querySelectorAll("[xml\:space]")
    

    看到这个:

    https://bugzilla.mozilla.org/show_bug.cgi?id=883044

    【讨论】:

    • 不知道为什么这个答案链接到 Bugzilla 报告,该报告已被正确关闭,而不是错误。
    【解决方案3】:

    也可以做

    document.querySelectorAll('[id="xml:space"]')
    

    【讨论】:

    • 当 id 是动态的时候的最佳选择。
    • 这是完全错误和不适用的:问题是关于一个名为xml:space的属性,不是值为 xml:space 的 ID 属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 2016-03-30
    • 2012-12-24
    • 1970-01-01
    相关资源
    最近更新 更多