jQuery属性选择器:如何使用自定义命名空间查询属性

Seb*_*tau 34 javascript jquery

假设我有一个简单的XHTML文档,它使用属性的自定义命名空间:

<html xmlns="..." xmlns:custom="http://www.example.com/ns">
    ...
    <div class="foo" custom:attr="bla"/>
    ...
</html>
Run Code Online (Sandbox Code Playgroud)

如何使用jQuery匹配具有特定自定义属性的每个元素?运用

$("div[custom:attr]")
Run Code Online (Sandbox Code Playgroud)

不起作用.(到目前为止仅使用Firefox试过.)

Dev*_*von 42

jQuery不直接支持自定义命名空间,但您可以使用过滤功能找到您要查找的div.

// find all divs that have custom:attr
$('div').filter(function() { return $(this).attr('custom:attr'); }).each(function() {
  // matched a div with custom::attr
  $(this).html('I was found.');
});
Run Code Online (Sandbox Code Playgroud)


Fyr*_*yrd 19

这适用于某些条件:

$("div[custom\\:attr]")

但是,对于更高级的方法,请参阅此XML Namespace jQuery插件


小智 7

按属性匹配的语法是:

$("div[customattr=bla]") 火柴 div customattr="bla"

$("[customattr]") 将所有标签与属性匹配 "customattr"

与命名空间属性,如'custom:attr'它不工作

在这里你可以找到一个很好的概述.

  • 这不是答案.它基本上只是重述问题并说选择器似乎不适用于命名空间. (2认同)