2013-07-15 45 views
0

我需要得到主要的culpritClass div类,它包含了所有东西后输入并按下输入并将其作为字符串放入一个变量。如何获得最顶级的div父类

我似乎无法获得课程。

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> 

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

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

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

     alert(ru); 
    } 
}); 

var ru是重要的行。

+0

如果你知道'.culpritClass'是你想要找到的,你可以使用'.closest(“.culpritClass”)'。这可以吗? – Jon

+0

阅读这个帖子http://stackoverflow.com/questions/7089229/how-to-select-first-parent-div-using-jquery你可以更好地理解 –

回答

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

应该做的方式诀窍。尽管这看起来不是最好的解决方案,但它是最直接的一种。除非有函数将参数传递给传递数字的函数,例如, ancestor(3)它将在DOM中向上移动三个层次并返回该元素。

但是,如果您只是试图找到类本身,请尽量靠近。

var ru = $(this).closest('.culpritClass'); 
+0

''''''''''''''''''''''''''''''),这对我的问题来说简单而完美,谢谢。 – dzumla011

0

试试这个,

$(this).closest('selector').find('div:first').attr('class'); 

如果你想那么parents.culpritClass第一要素试试这个,

$(this).closest('.culpritClass').find('div:first').attr('class'); 
4

试试这个:使用.closest()

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

您可以不喜欢这个:

var ru = $(this).parents().find('div').eq(0).attr('class'); 

或像这样:

var ru = $(this).parents().find('div:first').attr('class'); 

虽然有这么多的方法可以做到这一点,你可以选择你喜欢:)

Demo

+0

您正在通过'.culpritClass'进行选择,并且您再次找到'attr class',它不会给你同样的'culpritClass class'? –

+0

OP需要获得主要的'.cuppritClass',所以它使用'.closest('。culpritClass''' –

0

您还可以使用

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

,而不是

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

我会去与$(this).parents('.culpritClass')或者,如果你不“知道”之类的,但是你知道它有3父母确切,然后$(this).parent().parent().parent()

你的JS的问题是textarea有n prev(),你应该改变这个parent()它会工作。

0
$(document).ready(function() { 
    $('.chat_text').keypress(function(e) { 
     if (e.keyCode == '13') {     
      var ru = $(this).closest("div").parent();    
      alert($(ru).html()); 
     } 
    }); 

});

+0

请注意,在问题中,用户希望第三个div上升,而不是最接近的。 –

相关问题