2012-11-09 15 views
31

मुझे Jquery के साथ तत्वों का चयन करने में कुछ समस्याएं हैं। जब मैं एक तत्व का चयन करने का प्रयास करें:jQuery चयनकर्ता सामान्य तत्व के बजाय prevObject देता है

>[<img>, <img>, prevObject: e.fn.e.init[1], context: #document, selector: "#htmlChunk img.Thumb"] 

क्या इस परिणाम लौटे खड़ी कर रहा है:

var images = $("#htmlChunk").find("img.Thumb"); 
console.log(images); 

मैं इस परिणाम मिलता है? मैंने कुछ चीजों की कोशिश की लेकिन मुझे अभी भी नतीजा नहीं मिला।

मैंने संघर्ष से बचने के लिए कोड को लपेटने की कोशिश की। मैंने ऑब्जेक्ट को साफ़ करने का प्रयास किया

यह कुछ ऐसा था जो मैंने वेब पर पाया था। http://drupal.org/node/272557

var images = $("#htmlChunk")['prevObject'].find("img.Thumb"); 

मैं एक वस्तु अब लौट आए हो, लेकिन thats भी मैं क्या नहीं करना चाहता था।

मैं इस परियोजना में कूद गया, इसलिए मैं स्क्रिप्ट के साथ जाने-माने नहीं हूं। मैंने जेएस फाइलों में prevObject की खोज करने की कोशिश की लेकिन कोई भी नहीं मिला।

मुझे लगता है कि समस्या यह है कि यह किसी अन्य जावास्क्रिप्ट फ़ाइल में हस्तक्षेप कर रहा है। कोई विचार? दिशाओं?

संपादित करें: htmlChunk:

<div id="htmlChunk"> 
    <div class="ngg-albumoverview"> 
     <div class="ngg-album-compact"> 
      <div class="ngg-album-compactbox"> 
       <div class="ngg-album-link"> 
        <a class="Link" href="http://........"> 
         <img class="Thumb" alt="Personeelsevent" src="http://........."> 
        </a> 
       </div> 
      </div> 
      <h4><a class="ngg-album-desc" title="Personeelsevent" href="http://.....">Personeelsevent</a></h4> 
      <p><a href="http:///.......">bekijk dit album</a></p> 
     </div> 
    </div> 
</div> 
+0

परिणाम आप देख रहे हैं लौटे jQuery ऑब्जेक्ट के गुणों को है। अपने एचटीएमएल के नमूने के बिना, आगे की मदद करना असंभव है। –

उत्तर

41

आपका images चर, एक jQuery वस्तु है ताकि वस्तु होने के लिए क्या आप अपने ब्राउज़र के कंसोल में उत्पादन को देख रहे हैं लगता है। विशिष्ट आउटपुट से पता चलता है कि .find() पर कॉल वास्तव में किसी तत्व से मेल नहीं खा रहा है; this jsFiddle (क्रोम में) से दो कंसोल आउटपुट की तुलना करें।

जब आप एक jQuery फ़ंक्शन को कॉल करते हैं - जैसे कि .find(), .filter(), आदि - जो किसी मौजूदा jQuery ऑब्जेक्ट पर मिलान किए गए तत्वों की सूची को नीचे या बदलता है, जिसके परिणामस्वरूप jQuery ऑब्जेक्ट में उस कार्य से पहले राज्य का संदर्भ भी होता है चलाया गया था, जो आप prevObject के रूप में देख रहे हैं। जब आप .end() फ़ंक्शन को कॉल करते हैं, तो यह वापस लौटने के लिए उपयोग किया जाता है।

के नीचे अपने कोड को तोड़ने करते हैं:

var images = $(".htmlChunk").find("img.Thumb"); 

पहले भाग - $(".htmlChunk") - उन पर वर्ग htmlChunk है कि सभी तत्वों से मेल खाता है, और उन तत्वों से युक्त एक jQuery वस्तु देता है।

तो फिर तुम जो सभी तत्वों को पहले से ही मिलान किया तत्वों (वर्ग htmlChunk के साथ उन) जो एक <img> तत्व होने और उन पर वर्ग Thumb होने के मानदंडों को पूरा के वंशज हैं के लिए लग रहा है .find("img.Thumb") कहते हैं।

आप तत्व है, जो आपको बेहतर परिणाम दे सकता है पुनः प्राप्त करने के लिए एक एकल का भी उपयोग कर सकता है: आप उन्हें युक्त वास्तविक डोम तत्वों की एक सरणी चाहते हैं, बल्कि एक jQuery वस्तु से

var images = $(".htmlChunk img.Thumb"); 

, आप कर सकते हैं एचटीएमएल शामिल करने के लिए

var elementArray = images.get(); 

सवाल का समाधान करने के लिए संपादित करें: .get() फ़ंक्शन का उपयोग

प्रारंभिक तत्व प्राप्त करने के लिए आप $(".htmlChunk") का उपयोग कर रहे हैं। हालांकि, <div> तत्व में आईडी है, htmlChunk की कक्षा नहीं, ताकि कोड आपको आवश्यक तत्व का चयन न करे। आप निम्न का उपयोग करना चाहेंगे:

var images = $("#htmlChunk").find("img.Thumb"); 

नोट # बजाय चयनकर्ता में .

+0

मुझे वास्तव में परिणाम मिला है, आईडी (बेवकूफ गलती मेरी बुराई) के कारण, लेकिन मुझे अभी भी पता नहीं है कि prevObject कहां से आता है और क्यों? आम तौर पर आपको एक सरणी में DOM तत्व मिलते हैं, इससे पहले कभी यह नहीं देखा जाता है कि यह एक अजीब वस्तु देता है। बस चीजों को स्पष्ट करने के लिए आप इस ऑब्जेक्ट से कैसे छुटकारा पा सकते हैं उदाहरण के लिए – Jacob

+1

या मैबी यह अलग दिखता है क्योंकि क्रोम हाल ही में ब्राउजर को अपडेट करता है और कंसोल अब और अधिक जानकारी दिखाता है, तो इससे पहले कि मैबी क्यों है, मैं उलझन में हूं – Jacob

3

ऐसा लगता है कि आप वर्ग ".htmlChunk" का चयन करने की कोशिश कर रहे हैं, लेकिन अस्तित्व में नहीं है। इसके बजाय आईडी द्वारा चयन करने का प्रयास करें।

var images = $("#htmlChunk").find("img.Thumb"); 
+0

आह .. बेवकूफ शायद गलती क्योंकि इसकी शुक्रवार;) – Jacob

-1

इसे आजमाएं।

function getId() { 
      var ids = $(".htmlChunk").find("img.thumb"); //it wiill return array of image 
      var sid = $(".htmlChunk").find("img#img2"); //it wiill return wat image you want 
      $(".htmlChunk span").text("arrays:" + ids[0] + " : " + ids[1] + 
      "simple imge:" + sid); 
     } 


    <input id="Button1" type="button" value="button" onclick= "getId();"/> 


    <div class="htmlChunk"> 
     <img alt="" src="img/Desert.jpg" class="thumb" id="img1" /> 
     <img alt="" src="img/Chrysanthemum.jpg" class="thumb" id="img2" /> 
     <span></span> 
    </div> 
-2

परिणाम की केवल संपत्ति को रोकना नहीं है?

आप के रूप में यह समझ सकते हैं "परिणाम निम्नलिखित prevObject है ->"

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