我有以下标记,
<div custom="">
<div>
<template>
<a custom=""> (anything inside template should not be selected)
</a>
</template>
</div>
</div>
<a custom=""></a>
我想选择所有具有自定义属性的元素,但不要选择“模板”节点内的任何元素。
我试过以下但不行,
$(":not(template *) [custom]")
$(":not(template) [custom]")
$(":not(template) *[custom]")
$(":not(template *)[custom]")
$(":not(template)").filter('[custom]')) // this does not work either...
$(":not(template,template *)").filter('[custom]')) // this does not work either...
但这不起作用。有更简单的方法吗?我没有在查询中获得任何元素。
我知道,模板不是标准的html。但是我的自定义标记在html中有适当的标记,而不是包含在无法进行标记验证的非标准脚本中。
答案 0 :(得分:2)
给这一点。
$('[custom]:not(template *)');
这将选择具有custom
属性的所有元素(包括template
的后代),然后抛弃作为template
元素后代的元素。
答案 1 :(得分:0)
首先尝试将[custom]
属性与:not
选择器匹配。
$("[custom] :not(template)")