2012-01-27 22 views

उत्तर

3

जब आप संदर्भ प्रदान करते हैं आप इस संदर्भ अंदर p तत्व को खोजने के लिए jQuery कह रहे हैं, तो अपने चयनकर्ता दिखेगा किसी भी 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() के साथ लागू किया गया है, तो $ ('काल', यह) $ (this) .find ('काल') के बराबर है।

आपका p तत्व एक वंशज नहीं है, तो आप filter का उपयोग करने की आवश्यकता होगी: (या एक परीक्षण परिभाषित पारित

jQueryObj.filter("p"); 

filter विधि उन है कि चयनकर्ता मैच के लिए तत्वों का मिलान किया सेट कम कर देता है एक समारोह द्वारा)। आपके मामले में, तत्वों के मिलान किए गए सेट में एक तत्व होता है (p), जो चयनकर्ता से मेल खाता है।

0

jQueryObj आपके भीतर कोई <p> तत्व नहीं है।

एक संदर्भ के रूप में jQueryObj का उपयोग कर प्रदान किए गए चयनकर्ता के लिए संदर्भ को सीमित कर देगा।

jQueryObj.find('p'); 

आंतरिक रूप से, jQuery वास्तव में .find का उपयोग करता है() जब आप वाक्य रचना $(selector, context) उपयोग करते हैं, के रूप में दस्तावेज़ में कहा गया है:

आंतरिक रूप से, चयनकर्ता संदर्भ के साथ लागू किया गया है यह लेखन रूप में ही है .find() विधि, तो $ ('अवधि', यह) $ (इस) के बराबर है। ढूँढें ('अवधि')।

अतिरिक्त पठन:

0

आप के अंदर अपने मूल <p> (jQueryObj पहले से ही एक <p> टैग प्रतिनिधित्व करता है) <p> के लिए खोज रहे हैं।

क्योंकि आपके मूल <p> तत्व के भीतर <p> तत्व नहीं है, इसलिए आपकी खोज कोई परिणाम नहीं लौटाती है।

संबंधित मुद्दे