2012-01-27 49 views

回答

3

當你提供的情況下,你告訴了jQuery找出這方面內p元素,讓你的選擇會看任何p標籤是上下文的子項。

如果將容器添加到上下文中,它將能夠找到該元素。

var jQueryObj = $("<div><p>testing</p></div>"); 
 
// Display the length 
 
$('body').html($("p", jQueryObj).length);
<script src="http://code.jquery.com/jquery-2.2.0.js"></script>

2

當你傳遞一個上下文jQuery的,它等同於使用find方法,它着眼於後代元素。從jQuery docs

內部,選擇上下文與.find()方法來實現,所以 $( '跨',這一點)等同於$(本).find( '跨')。

p元素不是一個後代,所以你將需要使用filter

jQueryObj.filter("p"); 

filter方法減少了匹配組的元素的那些選擇器匹配的(或通過限定的測試由一個函數)。在你的情況下,匹配的元素集包含一個元素(p),它將與選擇器匹配。

0

您內部根本沒有<p>元素jQueryObj

使用jQueryObj作爲上下文將限制搜索提供的選擇器到上下文。這是一樣的文字:

jQueryObj.find('p'); 

內部,jQuery的實際使用.find()當您使用語法$(selector, context),如DOC聲明:

內部,選擇上下文與實現.find()方法, so $('span',this)相當於$(this).find('span')。

延伸閱讀:

0

你在裏面你原來<p>jQueryObj已經表示<p>標籤)尋找<p>

由於您的原始<p>元素中沒有<p>元素,因此您的搜索不會返回任何結果。

相關問題