我想要实现的是,当我点击子元素时,获取前一个父元素的子元素。这很难解释,所以我只是让我的代码解释一下:
$('body').on('click', '.child', function(){
if($(this).parent().prev().length > 0){
sid = $(this).parent().prev().children('.child').attr('sid');
alert(sid);
}
else{
sid = $(this).parent().next().children('.child').attr('sid');
alert(sid);
}
});
它只会返回一个未定义的'值。我错过了什么?
答案 0 :(得分:0)
你的所有元素都没有“sid”属性,因此它似乎在逻辑上确实是未定义的。你想做什么? 无论如何,我不认为“sid”是一个有效的HTML属性。
如果您想使用自定义属性,请使用“data- *”:
// HTML DOM
<div class="parent">
<div class="child" data-sid="1">Child1</div>
</div>
<div class="parent">
<div class="child" data-sid="2">Child2</div>
</div>
<div class="parent">
<div class="child" data-sid="3">Child3</div>
</div>
// JS
$('body').on('click', '.child', function() {
sid = $(this).parent().prev().children('.child').data('sid');
});