这些jQuery中的语句有什么区别?

时间:2015-01-20 06:13:43

标签: jquery

jQuery中a和b语句之间的区别是什么。

一个

$('#mytable').find('tr td:eq(0)').each(function(){}); 

B'/强>

$('#mytable').find('tr').find('td:eq(0)').each(function(){});

2 个答案:

答案 0 :(得分:4)

语句a将返回表td中的第一个#mytable,其中语句b将返回所有td的所有第一个tr元素表#mytable中的s。

因此,抽象a将返回0或1 td,其中b可以返回ntd个元素



$('#mytable').find('tr td:eq(0)').css('color', 'red'); 

$('#mytable').find('tr').find('td:eq(0)').css('background-color', 'green'); 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table id="mytable">
    <tr>
        <td>1.1</td>
        <td>1.2</td>
        <td>1.3</td>
    </tr>
    <tr>
        <td>2.1</td>
        <td>2.2</td>
        <td>2.3</td>
    </tr>
    <tr>
        <td>3.1</td>
        <td>3.2</td>
        <td>3.3</td>
    </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:3)

因为:eq()是一个jQuery扩展而不是CSS规范的一部分,使用:eq()的查询无法利用本机DOM querySelectorAll()方法提供的性能提升。为了在现代浏览器中获得更好的性能,请使用$(“your-pure-css-selector”)。eq(index)。

提及此link