我有几个未知元素(可能是 span、input、select、div 等等):
<div id="SomeControl" > <-- Data Attribute could be here
<span> <-- or Data Attribute could be here or even lower in the DOM
... somewhere here is a data attribute: data-is-dirty="True"
</span>
</div>
...
var $myControl = $('#SomeControl');
是否可以使用 $myControl 找到给定数据属性的存在和/或值?
我试过:
var isDirty = $myControl.find(':has([data-is-dirty]').data('is-dirty');
如有任何建议,我们将不胜感激。
最佳答案
我可以考虑在不将其包装在另一个元素中的情况下执行此操作的方法。不是他们中任何一个的粉丝,也许它会激励其他人。
var horrible1 = $("#test").find("*").andSelf().filter("[data-is-dirty]").length;
var horrible2 = $("#test").find("[data-is-dirty]").andSelf().filter("[data-is-dirty]").length;
var elem = $("#test");
var horrible3 = elem.parent().find("#" + elem.attr("id") + "[data-is-dirty], #" + elem.attr("id") + " [data-is-dirty]").length;
var elem = $("#test");
var horrible4 = elem.find("[data-is-dirty]").add(elem.filter("[data-is-dirty]")).length;
var horrible5 = $("[data-is-dirty]").filter( "#test, #test *" ).length;
关于javascript - 使用 jQuery,如何在元素上或元素内查找数据属性? (树遍历),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20412570/