我到处都有div元素的页面。
使用自定义ID标记获取div元素的最佳方法是什么。
例如<div rIndex="34">john</div>
,<div rIndex="45">Chris</div>
我正在使用此函数来查找具有rIndex属性的div元素。我想将这些div元素放入一个数组中,以便进一步处理。
$("div").each(function(index){
if($(this).attr("rindex"))
{
results[index] = $(this);
}
});
alert(results[0])
但警告信息正在返回一个函数定义,而不是元素。
答案 0 :(得分:3)
自定义属性就像这样(w3c):
<div data-rIndex="34">john</div>
答案 1 :(得分:1)
您可以简单地使用此jQuery选择器:
$('div[rIndex]')
但是,作为附注,我是否可以建议以这种方式声明div:
<div data-index="34"></div>
然后使用此选择器:
$('div[data-index]')
然后您的代码符合HTML标准。
答案 2 :(得分:1)
Has Attribute选择器支持自定义属性:
alert($("div[rIndex]")[0]);
那就是说,尤达是对的:在这种情况下,你应该更喜欢HTML5中定义的custom data attributes:
<div data-rIndex="34">john</div>
alert($("div[data-rIndex]")[0]);
答案 3 :(得分:0)
HTML
<div data-rIndex="34">john</div>
<div data-rIndex="45">Chris</div>
JavaScript
var results = [];
$("div[data-rIndex]").each(function(index){
if($(this).data("rindex"))
{
results[index] = $(this);
}
});
alert($(results[0]).html()); //should alert 'john'
我整理了你的HTML,在这里进行了演示 - http://jsfiddle.net/aerj4/
如果你想要一个div数组,你可以这样做 -
var results = [];
$("div[data-rIndex]").each(function(index){
if($(this).data("rindex"))
{
results[index] = this;
}
});
alert(results[0])//alerts [object HTMLDivElement]