दिलचस्प पोस्ट
sqlite3 समवर्ती पहुंच स्विफ्ट में सबस्क्रिप्ट और सुपरस्क्रिप्ट का उपयोग कैसे करें गोल कोनों के साथ लेआउट कैसे बनाया जाए ..? सीएडीएटीए के साथ जेएएएसएबी मार्शलीिंग अनमरशेलिंग क्रॉस-डोमेन पोस्ट के साथ क्रेडेंशियल भेज रहा है? स्टैक्ड बार चार्ट सी # में बहुआयामी कुंजी के साथ हैशटेबल PHP सत्र डिफ़ॉल्ट समयबाह्य मैं सर्कल के परिधि पर एक बिंदु की गणना कैसे करूं? LINQ के लिए वाइल्डकार्ड खोज एक गतिविधि के कई उदाहरणों को रोकने के लिए कैसे करें जब इसे विभिन्न इन्टेंट्स के साथ लॉन्च किया जाता है OneWayToSource बाइंडिंग .NET 4.0 में टूटी हुई है कैसे अपलोड करने पर jQuery के सीमित प्रकार के फाइलों को सीमित करें? पहचान स्तंभ मूल्यों को प्रोग्राम बदलने के लिए कैसे? क्रोन को हर दूसरे सप्ताह नौकरी करने के लिए कैसे निर्देशित किया जाए?

$ पर Jquery चयनकर्ताओं का उपयोग करें .एक्सएक्स एचटीएमएल लोड हो गया है?

मेरे पास है

$.ajax({ url: identity, success: function(data) { ProcessIdentityServer(data) } }); 

जब 'डेटा' वापस आ जाता है, तो उसके पास चयनकर्ताओं को डोम में जोड़े बिना इसे चलाने के लिए कोई रास्ता नहीं है। तो उदाहरण के लिए, मैं 'डेटा' में आयोजित एचटीएमएल में मौजूद किसी भी LINK टैग के सभी href मानों को डीओएम में बिना जोड़ के कैसे प्राप्त कर सकता हूं? शर्म की बात यह है कि उसे डोम में जोड़ने की आवश्यकता है, यदि मैं करना चाहता हूं तो कुछ चीजें किसी सरणी में निकाली जाती हैं। किसी को भी किसी भी विचार मिला?

वेब के समाधान से एकत्रित समाधान "$ पर Jquery चयनकर्ताओं का उपयोग करें .एक्सएक्स एचटीएमएल लोड हो गया है?"

 // Finds all div elements within an XML document from an AJAX response. $("div", xml.responseXML); 

एक नोट मैं जो भी इसी तरह की समस्या से जोड़ूंगा, वह यह है कि अगर आपका AJAX निम्न देता है:

 <div class="test">Hello</div> <div class="one">World</div> 

निम्न jQuery काम नहीं करेगा :

 $(data).find('div.test'); 

जैसा कि divs शीर्ष स्तर तत्व हैं और डेटा एक तत्व नहीं है, लेकिन एक स्ट्रिंग, यह काम करने के लिए आपको उपयोग करने की आवश्यकता है। .filter

 $(data).filter('div.test'); 

शुरुआत से पहले, आइए देखें कि एक मूल एचटीएमएल पृष्ठ पर जो jQuery करता है वह $.ajax() कॉल से लौटा है, और लौटा हुआ डेटा को jQuery ऑब्जेक्ट में परिवर्तित कर देता है।

 $.ajax({ dataType : 'html', url : 'path/to/example-page.html', success : function(data) { // log the result of the data converted into a jquery object. console.log( $(data) ); } }); 

आपको यह देखने की उम्मीद है:

 [ 0 <TextNode textContent="\n\n\n\n\n "> 1 title 2 <TextNode textContent="\n "> 3 meta 4 <TextNode textContent="\n\n\n\n\n"> 5 div#container 6 Comment { data=" #container ", length=12, nodeName="#comment", more...} 7 <TextNode textContent="\n\n"> jquery "1.6.4" length 8 selector "" // additional data and functions removed for brevity ] 

ओह! यह काफी बदसूरत है! इसके साथ कुछ भी करने का प्रयास करने से परिणाम उत्पन्न हो सकते हैं , लेकिन आपको पता होना चाहिए कि डेटा संरचना हर एक समय की तरह कैसी दिखती है, और उस ऑब्जेक्ट में डेटा कहां है। क्या यह डेटा रूट पर है, या क्या इसे दफन किया गया है?

पिछले पोस्टर्स की तरह, आप .filter() उपयोग कर सकते हैं, लेकिन .filter() है कि वह खोज जायेगी, क्योंकि आप केवल लौटा परिणाम फ़िल्टर कर रहे हैं हालांकि, अगर आप इस बिंदु पर। .find() का उपयोग करें और आप चाहते हैं कि तत्व जड़ पर है, तो आप एक खाली सेट प्राप्त करेंगे, लेकिन जड़ से परे दबे कुछ पाया जाएगा।

तो, यह जानना .filter() कि यह डेटा संरचना 100% निश्चितता के साथ कैसा दिखता है, और एकाधिक .filter() और .filter() का उपयोग करने की सभी परेशानियों में से क्यों परेशान हो रहा है, और मैं कहता हूं कि .each() लूप? नीरस यह सिर्फ बहुत अधिक काम है और बहुत अधिक समय लेता है

यदि आप चाहते हैं। .find() एक विशेष HTML तत्व को .ajax() कॉल से वापस प्राप्त करना चाहते हैं, तो निम्न पंक्ति से शुरू करें:

 var response = $('<html />').html(data); 

क्या यह सचमुच आसान हो सकता है? वास्तव में, हाँ यह है! यहाँ क्या हो रहा है कि एक नया <html> तत्व बनाया जा रहा है और एक jQuery ऑब्जेक्ट में रूपांतरित हो रहा है। यह .ajax() कॉल से लौटा HTML डालने के लिए एक प्रारंभिक स्थान का उपयोग किया जाता है। यह एक वेबपेज पर $('html') करने जैसा है इसके साथ, आप तत्वों को ढूंढना शुरू कर सकते हैं

 response.find( ... ); // any jquery selector in place of the ellipsis. 

यहां एक उदाहरण है जो मूल पोस्टर के प्रश्न का उपयोग करता है:

 $.ajax({ dataType : 'html', url : 'path/to/example-page.html', success : function(data) { // set the returned contents in a new base <html> tag. var response = $('<html />').html(data), anchors, hrefValuesList = [ ], i, end; // now you can search the returned html data using .find(). anchors = response.find('a'); // grab all your href values from each anchor element. end = anchors.length; for (i = 0; i < end; i++) { hrefValuesList.push( anchors[ i ].href ); } // continue processing the data as necessary... } }); 

जाहिर है, उपरोक्त को कुछ परिष्करण की आवश्यकता होगी यदि आप किसी भी अवांछित सामग्री को फ़िल्टर करना चाहते हैं या वापस लौटाए गए मूल्यों को परिष्कृत करना चाहते हैं।

उस के साथ, आपको निम्न उदाहरण के एआरए की तरह कुछ दिखाई दे सकता है:

 [ "http://stackoverflow.com/", "http://www.google.com/" ] // and so on... 

इस दृष्टिकोण का उपयोग करके, आप आसानी से $.ajax() फ़ंक्शन जैसे किसी भी HTML डेटा पर पुनः प्राप्त की शक्ति का उपयोग कर सकते हैं जैसे आप पहले से ही किसी भी तत्व को डॉम में ढूंढते हैं। वास्तविक बोनस यह है कि आप सीधे डोम को हेरफेर करने के लिए या जो चाहते हैं, वह नहीं कर रहे हैं, जो एक महंगी प्रक्रिया है।

खुश स्क्रबिंग! =)

मान लें कि data HTML का एक स्ट्रिंग है, आप यह कर सकते हैं:

 $(data).find('a'); 

यह DOM को डेटा जोड़ए बिना लिंक वापस करेगा।

आपको प्रतिक्रिया से तत्वों को प्राप्त करने / संशोधित करने में पहले एक कंटेनर को परिभाषित करना होगा:

  $.ajax({ url: url + "/ajax.htm", dataType: "html", success: function(html) { container = $('#ajax_content'); container.html(html); container.find("a").css("background","red"); } }); 

सुनिश्चित करें कि आप $ (डेटा) फ़ंक्शन, मूल jQuery फ़ंक्शंस में से एक, लौटे गए HTML को DOM तत्वों में बदल सकते हैं। ऑनलाइन डॉक्स देखें

आप संदर्भ का भी उपयोग कर सकते हैं (पता नहीं कब शुरू किया गया था):

 $.get('some/url', '', function (data) { $("#domelement", data); } ); 

यह स्वीकृत उत्तर के समान है, लेकिन कुछ अतिरिक्त स्पष्टीकरण के साथ।

आप डॉक्स से jQuery के संदर्भ पैरामीटर लिंक का उपयोग कर सकते हैं

मैं वास्तव में दस्तावेज़ से बेहतर समझा नहीं सकता।

चयनकर्ता का संदर्भ

डिफ़ॉल्ट रूप से, चयनकर्ता दस्तावेज रूट से शुरू होने वाली डोम के भीतर अपनी खोज करते हैं। हालांकि, $ () फ़ंक्शन के लिए वैकल्पिक दूसरे पैरामीटर का उपयोग करके खोज के लिए एक वैकल्पिक संदर्भ दिया जा सकता है

संदर्भ पैरामीटर jQuery v1.0 से लगभग रहा है

इसलिए ओपी के उदाहरण के लिए एक समाधान "डीओएम" को जोड़कर 'डेटा' में आयोजित एचटीएमएल में शामिल किसी भी LINK टैग के सभी href मानों को प्राप्त करना "पहले होगा:

 success: function(data){ $("a", data).each(function(){ console.log( $(this).attr("href") ); }); } 

मेरा अंतिम समाधान था

 jQuery.ajax({ url: "/some-url", cache: false, dataType: "html", success: function(data) { jQuery("#target").html( jQuery(data).find('#ajax-data')); } });