我的html包含以下内容:
<div class="ui-btn-text">
<a id="12323" class="listviewLines ui-link-inherit" href="" /></div>
<div class="ui-btn-text">
<a id="23534" class="listviewLines ui-link-inherit" href="" /></div>
<div class="ui-btn-text">
<a id="12312" class="listviewLines ui-link-inherit" href="" /></div>
我想根据标签的索引提取id值,所以我写下面的函数:
function getId(index) {
$('.ui-btn-text > a').each(function(i) {
if (index == i) {
alert($(this).attr("id"));
return ($(this).attr("id"));
}
});
}
然后当我调用getId(0)时,结果为“undefined”。我是javascript的新手,有人可以帮帮我吗?
此外,jQuery中是否有一个函数可以直接返回带有索引参数的内容,而不会迭代所有子节点?
答案 0 :(得分:2)
作为参数传递给each
的内部匿名函数返回。 getId
不返回任何内容,即undefined
。
您可以使用N-th child selector
获取元素的第N个子元素在您的情况下,选择器将是$('.ui-btn-text > a:nth-child('+index+')')
答案 1 :(得分:2)
function getId(index) {
var ret;
$('.ui-btn-text > a').each(function(i) {
if (index == i) {
ret = $(this).attr("id");
return false; // stop internal loop by jQuery
}
});
return ret;
}
答案 2 :(得分:1)
return
函数中没有getId
语句。 (不计算匿名函数中的return
。)
答案 3 :(得分:1)
您正在寻找nth-child selector:
$('.ui-btn-text a:nth-child(' + index+')')
答案 4 :(得分:1)
尝试
function getId(index) {
return $($('.ui-btn-text > a')[index]).attr("id");
}
当然,这是零基础。