4

当在 jquery / javascript 中的“.buttonleft0”中单击按钮时,我希望从此布局中找到父 div id(即“Bakerloo”)。

<div id='Bakerloo' class='box'>bakerloo<p></p><span class='buttons'>
<span class='buttonleft0'><button onClick='up()'><span class='icon icon10'></span>
</button>
</span><span class='buttonleft'></span><span class='buttonright'></span></span>
<div class='comingup'></div>
<div class='more'></div></div>

我努力了:

$(this).parent('id');

但这只会返回“未定义”。

4

7 回答 7

5
$(this).closest('div').attr('id')

我想这就是你想要的

于 2013-03-09T15:48:30.603 回答
4

parent()函数返回 jQuery 对象,因此您需要使用attr()它的任何属性,如下所示:

$(this).closest().attr('id');

编辑:在进一步检查中,该按钮似乎不是 的直接子级div,因此需要使用该closest()功能。

于 2013-03-09T15:46:39.277 回答
3

直截了当的 Javascript 总是对我有用。

<div id='Bakerloo' class='box'>
    bakerloo<p></p>
    <span class='buttons'>
        <span class='buttonleft0'>
        <button onClick='alert(this.parentNode.parentNode.id)'>
             <span class='icon icon10'></span>
        </button>
        </span>
        <span class='buttonleft'></span>
        <span class='buttonright'></span>
    </span>
    <div class='comingup'></div>
    <div class='more'></div>
</div>    
于 2013-03-11T19:35:36.060 回答
1

您的代码本身几乎没有错误,所以这是正确的:

HTML

<div id='Bakerloo' class='box'>bakerloo<p></p><span class='buttons'>
<span class='buttonleft0'><button><span class='icon icon10'>Click here</span>
</button>
</span><span class='buttonleft'></span><span class='buttonright'></span></span>
<div class='comingup'></div>
<div class='more'></div></div>

jQuery

jQuery(document).ready(function($){
    $("button").on('click',function(){
       alert($(this).closest('div').attr('id'));
    });
});

这是小提琴http://jsfiddle.net/cpeeyush/ydk4e/

于 2013-03-09T16:04:52.837 回答
1

尝试这个:

$(this).parent().attr("id");
于 2013-03-09T15:49:18.023 回答
0

尝试这个:

$(this).closest('div[id]')

于 2013-03-09T15:56:19.063 回答
0
alert($(this).parent().id);

如果您想确保选择正确的课程,请尝试:

alert($(this).parent('.div').id);

如果您有更深的层次结构,您可以使用:

alert($(this).parents('.div:eq(n)').id);

其中 n 是您想要获得的父母

于 2016-05-13T13:08:23.787 回答