如何获得最顶级的div父类

dzu*_*011 3 jquery class selector

我需要得到一个主culpritClassdiv类,它在输入内容之后保存所有内容并按下enter并将其作为字符串放入变量中.

我似乎无法上课.

HTML:

<div class="culpritClass">
<div class="inner" style="display: block;">
<div class="inner_chat"></div>
<form>
<textarea class="chat_text"></textarea> 
</form>     
</div><a class="culpritClass" href="#">culprit</a>
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试了以下JS,但我得到了undefined.

$('.chat_text').keypress(function(e) {
    if (e.keyCode == '13') {

        var ru = $(this).prev().parent().attr('class');

        alert(ru);
    }
});
Run Code Online (Sandbox Code Playgroud)

重要的var ru是这条线.

Bra*_*roy 8

var ru = $(this).parent().parent().parent().attr('class');
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.即使这看起来不是最好的解决方案,但它是最简单的一个.除非有一个函数将参数传递给一个向上移动数字的函数,例如ancestor(3),它将在DOM中向上移动三个级别并返回该元素.

但如果你只是想找到班级本身,那就试试最近的.

var ru = $(this).closest('.culpritClass');
Run Code Online (Sandbox Code Playgroud)


Dha*_*hak 6

试试这个:使用.closest()

$('.chat_text').keypress(function(e) {
    if (e.keyCode == '13') {
       var ru = $(this).closest('.culpritClass').attr('class');
       alert(ru);
    }
});
Run Code Online (Sandbox Code Playgroud)

你可以这样做:

var ru = $(this).parents().find('div').eq(0).attr('class');
Run Code Online (Sandbox Code Playgroud)

或者像这样:

var ru = $(this).parents().find('div:first').attr('class');
Run Code Online (Sandbox Code Playgroud)

虽然有很多方法可以做到这一点,但您可以选择自己喜欢的方式:)

演示