2017-05-17 45 views
1

假设我有以下的HTMLJavaScript的浏览子元素

<div class="mytable"> 
    <table> 
    <tbody> 
     <tr> 
     </tr> 
    </tbody> 
    <table> 
</div> 
<div class="mytable"> 
    <table> 
    <tbody> 
     <tr> 
     </tr> 
    </tbody> 
    <table> 
</div> 

我用下面的代码地址:

$('.mytable').each(function(){ 
    var that = $(this); 
}); 

现在我需要得到TR元素在我的桌子里面。我怎样才能做到这一点?我想是这样的:。

$(that+'>tr') 

,但它显然没有奏效((任何帮助,将不胜感激谢谢

+3

尝试'that.find('tr')' –

+0

我建议你阅读[这个JQuery教程](https://learn.jquery.com/using-jquery-core/selecting-elements/),它解释了概念涉及 – Aaron

+0

以及里面的ID和类怎么样?是否有可能使用像$(that.find('#myid'))? – Jack

回答

2

在参考@NenadVracar评论,你可以尝试使用:

$('.mytable').each(function(){ 
    var that = $(this); 
    var $tr = that.find('tr'); 
}); 
0

$('div > tr')会工作,如果tr是直接子div,这显然不是这种情况...

在你的问题,你说说背景。这个词在jQuery中实际上是合适的,因为它是库的一个正式概念。

.find()当然是有效的解决方案。但是,使用jQuery函数的可选参数context可以简化更多操作。如果你不明白我的意思,看看这个代码:

$('tr', '.mytable').each(function() { 
 
    var $tr = $(this); 
 
    console.log($tr.attr('id')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="mytable"> 
 
    <table> 
 
    <tbody> 
 
     <tr id="tr1"></tr> 
 
    </tbody> 
 
    </table> 
 
</div> 
 
<div class="mytable"> 
 
    <table> 
 
    <tbody> 
 
     <tr id="tr2"></tr> 
 
    </tbody> 
 
    </table> 
 
</div>

$('tr', '.mytable')意味着要选择内.mytable元素tr元素。如果您只需要表格中的tr元素,则这是.find()的不错选择。