鉴于此 HTML:
<p htmlfor="afield">This field is required.</p>
这个 jQuery 选择器会找到 p 标签:
var filtered = $("*").filter("[for='afield']");
而这个不会:
$("p").filter("[for='afield']");
为什么第一个匹配?HTML 中的属性是“htmlfor”,而选择器中的属性是“for”。
而且,为什么第二个不匹配?
这是一个小提琴(带有警报,抱歉......)。
从评论中编辑解释我为什么关心:
我正在使用 jquery-validate 插件。[for='afield']
是插件代码使用的语法,它也是生成 HTML 的插件。我只是想了解发生了什么,以便修复我网站上的错误。