jQuery的`children`和`find`之间有什么区别?

5

HTML

<table id='t'>
  <tr>
    <td id='foo' class='a b c'>blah</td>
    <td id='bar' class='a c'>bloo</td>
    <td id='zip' class='a b c'>blop</td>
 </tr>
</table>

使用 jQuery,为什么以下的 children 调用会返回 0
$('#t').children('tr').length

但是find返回1?

$('#t').find('tr').length

https://jsfiddle.net/o71x6co6/1/


4
你的浏览器可能会在你的 <table><tr> 之间插入一个 <tbody> 元素(我的浏览器也这样做)。 - Frédéric Hamidi
1个回答

4
因为如果你不添加,浏览器会自动添加一个元素。

console.log($('#t').children().get(0).tagName);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id='t'>
  <tr>
    <td id='foo' class='a b c'>blah</td>
    <td id='bar' class='a c'>bloo</td>
    <td id='zip' class='a b c'>blop</td>
 </tr>
</table>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接