javascript - 使用 jQuery,如何在元素上或元素内查找数据属性? (树遍历)

标签 javascript jquery html dom

我有几个未知元素(可能是 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;

JSFiddle

关于javascript - 使用 jQuery,如何在元素上或元素内查找数据属性? (树遍历),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20412570/

相关文章:

javascript - RCTTextField 不是 RCTShadowView 错误的后代

javascript - 准备好的语句未在带有 mssql 的 Node js 中执行

jquery - 查找最长的 li 并将每个 li 设置为该长度

javascript - 获取更改事件中单击的单选按钮 Id

javascript - 乒乓球比赛获胜后不会出现文字

javascript - 如何根据用户输入用 JavaScript 启动字幕?

php - 如何在 ajax 调用中操作 URL?

javascript - 视口(viewport)高度和 .css()

javascript - 如果段落中只有一行,如何隐藏/显示 'more' 按钮

javascript - html/javascript - 去饱和/灰度图像翻转而不创建图像副本或 Sprite