2012-05-14 133 views
-1

什麼這些.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> 

回答

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

是基本相同

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

通知的descendant selectorselect:selected之間的空間)。這發現任何:selected元素select元素。

另一方面,您的第一個選擇器找到select:selected,這不起作用,因爲:selected applies to option elements only

0

我想第一個解析所有的DOM一次,並得到您的選擇。

第二解析DOM,讓您的選擇,並解析檢索DOM對象找到第二選擇

它導致相同的,但性能可能它們之間改變?