我尝试获取我在内容中搜索的元素的ID:
$headings = jQuery('.kb-content').find('h2');
jQuery($headings).each(function() {
jQuery('#kb-postnav .nav').append('<li><a href="'+$(this).attr('id')+'">'+$(this).text()+'</a></li>');
});
但是id的结果是未定义的。 我在谷歌搜索很长时间,发现很多“回答”,但没有工作:
this.id;
$(obj).attr('id');
...
编辑:抱歉我的错,找到了问题:h2元素的id是在我的函数之后创建的。但是这个函数也会为h2元素添加额外的内容。所以我想现在得到父母的身份。 像
<div id="test">
<h2>This is a test</h2>
</div>
所以当元素已经在找到的列表中时,我想在查找('h2')之后得到父元素。
答案 0 :(得分:1)
您找到的元素没有ID,因为this.id
工作正常:
jQuery('.kb-content h2').parent().each(function() {
alert(this.id);
});
/* Alternative
jQuery('.kb-content h2').each(function() {
alert(this.parentElement.id);
});
*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="parentid" class="kb-content">
<h2 id="id1">Title</h2>
</div>
<div id="jb-postnav">
<div class="nav"></div>
</div>