Jquery获取上一个或下一个父元素子元素的属性

时间:2015-06-06 18:05:45

标签: jquery

我想要实现的是,当我点击子元素时,获取前一个父元素的子元素。这很难解释,所以我只是让我的代码解释一下:

$('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);
    }
});

JSFIDDLE HERE

它只会返回一个未定义的'值。我错过了什么?

1 个答案:

答案 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');
});