【发布时间】:2013-04-23 13:50:00
【问题描述】:
我用过
var activeFilter = $('<li></li>').data('input-id', 'mycustomId');
$('#container').append(activeFilter);
现在我需要从已知
- 中的多个
- 元素中取出特定的
- 元素。
但是明显的选择器不起作用。
var existing = $('li[data-input-id=mycustomId]'); alert(existing.length);有用的链接: .prop() vs .attr() How to get, set and select elements with data attributes?
总结:
.prop()设置/获取 DOM 属性.. 例如类名.attr()设置/获取标签属性.. 例如类,从而使选择器$('obj[class=xxx]')成为可能。.data()设置/获取 jQuery 内部缓存属性并且不映射到属性或属性。但是,在 html5 属性中设置为
.attr()并包含前缀"data-"可以通过 @987654332 正确访问@,但不是反之亦然!!在调试器中没有列出属性 data-input-id,但可以通过
$('#container li:firstchild').data('input-id');问题是我如何获得(我必须使用哪个选择器)具有给定数据集值的 li(即对象),例如
obj.getChildWithData('data-id', 'mycustomId');除了在循环中检查每个 li 的数据集。或者使用 stupid document.querySelectorAll,因为它没有做需要的事情。如果适用,请解释它是否应该这样工作。将 data-* 属性设置为属性不允许我使用 html5 推荐的 .data() 。所以我想把它做好。
【问题讨论】:
标签: javascript jquery html jquery-data