是否有一种简单直接的方法来根据元素的数据属性选择元素?例如,选择所有具有customerID值为22的数据属性的锚。
我有点犹豫是否要使用rel或其他属性来存储此类信息,但我发现根据存储的数据选择元素要困难得多。
是否有一种简单直接的方法来根据元素的数据属性选择元素?例如,选择所有具有customerID值为22的数据属性的锚。
我有点犹豫是否要使用rel或其他属性来存储此类信息,但我发现根据存储的数据选择元素要困难得多。
当前回答
像这样的结构:$('[data-XXX=111]')在Safari 8.0中不起作用。
如果你这样设置数据属性:$('div')。data('XXX', 111),如果你直接在DOM中设置数据属性,它只会起作用:$('div')。attr(“data-XXX”,111)。
我认为这是因为jQuery团队优化了垃圾收集器,以防止内存泄漏和对每个更改数据属性的DOM重建的繁重操作。
其他回答
像这样的结构:$('[data-XXX=111]')在Safari 8.0中不起作用。
如果你这样设置数据属性:$('div')。data('XXX', 111),如果你直接在DOM中设置数据属性,它只会起作用:$('div')。attr(“data-XXX”,111)。
我认为这是因为jQuery团队优化了垃圾收集器,以防止内存泄漏和对每个更改数据属性的DOM重建的繁重操作。
我还没见过没有jQuery的JavaScript答案。希望它能帮助到某些人。
var elements = document.querySelectorAll('[data-customerID="22"]'); 元素[0]。innerHTML = '它工作了!'; 测试< data-customerID = ' 22 ' > < / >
信息:
数据属性 .querySelectorAll ();
只是用“生活标准”的一些特征来完成所有的答案-到目前为止(在html5时代),没有第三方libs是可能做到的:
纯/纯JS与querySelector(使用css选择器): select document.querySelector('[data-answer="42"],[type="submit"]') select所有DOM: document.querySelectorAll('[data-answer="42"],[type="submit"]') 纯/纯CSS 一些特定的标签:[data-answer="42"],[type="submit"] 所有具有特定属性的标签:[data-answer]或input[type]
为了在Chrome中工作,该值不能有另一对引号。
例如,它只能这样工作:
$('a[data-customerID=22]');
它会工作的:)
$('.ic-star[data-rate=“1”]').addClass('rated');