这些.find()用法有什么区别?

时间:2012-05-14 10:11:06

标签: jquery jquery-selectors find

之间的区别是什么
$data.find('select:selected');

$data.find('select').find(':selected');

假设$data = $('#data');

  <div id="data">
    <div>
    <select multiple>
    <option value="foo">foo</option>
    </select>
    </div>
    </div>

2 个答案:

答案 0 :(得分:7)

$data.find('select').find(':selected');

基本相同
$data.find('select :selected');

注意descendant selectorselect:selected之间的空格)。这会在<{em> :selected元素中找到的任何select元素。

另一方面,您的第一个选择器会找到select:selected,因为:selected applies to option elements only而无效。

答案 1 :(得分:0)

我想第一个解析所有DOM一次并获得你的选择器。

第二个解析do​​m来获取你的选择器并解析检索到的dom对象以找到第二个选择器

结果相同,但它们之间的性能可能会发生变化?