jquery

2009-04-01 17 views
60

के साथ पार्स एचटीएमएल स्ट्रिंग मेरे पास एक अजाक्स लोड स्रोत से एक HTML स्ट्रिंग है। इससे पहले कि मैं HTML में दस्तावेज़ डालूं, मैं इस स्ट्रिंग में किसी ऑब्जेक्ट (छवि) से कुछ विशेषताओं को प्राप्त करना चाहता हूं।jquery

मैं की तरह कुछ मिल गया है:

$.ajax({ 
     url: uri+'?js', 
     success: function(data) { 
      var htmlCode = $(data).html(); 

      $('#otherObject').html(data); 
     } 
    }); 

मैं कैसे इस HTML स्ट्रिंग से गुण (उदाहरण के लिए src) मिल सकता है?

उत्तर

106

मैं एक 100% यकीन नहीं है, लेकिन

$(data) 

कि डेटा के लिए एक डोम के साथ एक jQuery वस्तु का उत्पादन नहीं होगा, कहीं भी कनेक्ट नहीं? या यदि यह पहले से ही डोम के रूप में पार्स किया गया है, तो आप $ ("# myImg", डेटा), या जो भी चयनकर्ता आपकी आवश्यकताओं के अनुरूप हो सकता है।

संपादित
अपने प्रश्न फिर से पढ़ने पर ऐसा लगता है अपने 'डेटा' पहले से ही एक डोम, तुम बस जा सकते हैं जिसका मतलब है कि है (वहाँ केवल अपने डोम में एक img संभालने, अन्यथा आप एक और अधिक सटीक चयनकर्ता की आवश्यकता होगी)

$("img", data).attr ("src") 

यदि आप src-attribute तक पहुंचना चाहते हैं। अपने डेटा को केवल पाठ है, तो यह शायद करने के लिए

$("img", $(data)).attr ("src") 
+2

uuh, आपके उत्तर के लिए धन्यवाद! यह समाधान है :) मैंने इसे नहीं देखा। मैं आपको एक अच्छा पहला अप्रैल की कामना करता हूं - और अब मुझे शर्म आती है;) – MarvinS

+0

mhm, मुझे अपनी टिप्पणी वापस लेना है। आपका उदाहरण यानी (संस्करण 7 में परीक्षण) के लिए काम नहीं करता है। मैंने "$ (डेटा)" - "डेटा" - "$ (डेटा) .html()" - कुछ भी काम नहीं किया। कोई सुझाव? – MarvinS

+0

$ ("img", $ ('

')) एफएफ में काम किया (आईई 7 नहीं मिला है)। केवल आईएमजी टैग संलग्न है, या सिर्फ एक शरीर में संलग्न नहीं है, तो शायद यह एक इकाई में अनुवाद करता है? क्या आपने $ (डेटा) .attr() को सीधे कोशिश की? – falstro

2

MarvinS.- काम करेगा

प्रयास करें:

$.ajax({ 
     url: uri+'?js', 
     success: function(data) { 
       var imgAttr = $("img", data).attr('src'); 
       var htmlCode = $(data).html(); 
       $('#imgSrc').html(imgAttr); 
       $('#fullHtmlOutput').html(htmlCode); 
     } 
    }); 

यह #fullHtmlOutput और में डेटा से पूरे एचटीएमएल ब्लॉक लोड करना चाहिए #imgSrc में छवि का स्रोत।

1

सिर्फ अपने img तत्व befor कंटेनर तत्व जोड़ बस सुनिश्चित करें कि आपके intersted तत्व नहीं एफएफ

1

एक बात पहले एक, यानी में परीक्षण किया है, नोट करने के लिए होने के लिए - के रूप में मैं आज वास्तव में इस समस्या थी पर निर्भर करता है, अपने एचटीएमएल jQuery इसे अच्छी तरह से पार्स कर सकता है या नहीं। jQuery मेरे एचटीएमएल को सही डीओएम में पार्स नहीं करेगा - छोटे एक्सएमएल अनुपालन फाइलों पर यह ठीक काम करता है, लेकिन मेरे पास एचटीएमएल (जो एक पृष्ठ में प्रस्तुत होगा) एक अजाक्स कॉलबैक पर वापस जाने पर पार्स नहीं करेगा।

अंत में मैंने आसानी से टैग के लिए स्ट्रिंग में मैन्युअल रूप से खोज की, आदर्श नहीं बल्कि काम किया।

+0

यदि आप पूरे पृष्ठ को पार्स कर रहे हैं तो यह मदद कर सकता है: http://stackoverflow.com/a/1069953/854477 –