मैं एक पूर्ण HTML दस्तावेज़ मैं $.ajax()
साथ में खींच कर रहा हूँ मिल गया है, और मेरे .done()
कॉलबैक इस तरह दिखता है:jQuery() विन्यास त्रुटि में एक अच्छी तरह से गठित एचटीएमएल स्ट्रिंग परिणामों पर, गैर मान्यता प्राप्त अभिव्यक्ति
function (data, text_status, jq_xhr) {
var $what_i_want = $(data).find('#what-i-want');
}
जहां data
एक स्ट्रिंग है जिसमें एक अच्छी तरह से बनाए गए HTML दस्तावेज़ की संपूर्णता शामिल है। यह कोड कभी भी .find()
तक पहुंचता है।
$(data)
पर, मैंने मिलती है:
`Uncaught Error: Syntax error, unrecognized expression: <!DOCTYPE html>`...
तथ्य:
- मैं jQuery 1.9.0
- दस्तावेज़ का उपयोग कर रहा W3C मान्य के अनुसार अच्छी तरह से गठित एचटीएमएल 5 है।
मैंने कई HTML स्ट्रिंग को ऑब्जेक्ट करने के लिए jQuery()
का उपयोग किया है, इसलिए मुझे आश्चर्य है कि यह काम नहीं कर रहा है। माना जाता है कि, मुझे कभी भी एक संपूर्ण दस्तावेज़ की कोशिश याद नहीं है। त्रुटि को देखते हुए, मैं अनुमान लगा रहा हूं, शायद, मुझे किसी भी तरह से इस स्ट्रिंग से बचने की जरूरत है। लेकिन मुझे यकीन नहीं है कि कैसे।
संयोग से, इस काम करता है:
var $what_i_want = $('#what-i-want', $.parseHTML(data))
लेकिन मैं समझ नहीं क्यों पहले दृष्टिकोण विफल रहता है।
मुझे लगता है कि यह सोच रहा है कि दस्तावेज़ एक HTML खंड नहीं है, लेकिन एक चयनकर्ता है। यदि आपने DOCTYPE को शर्त लगा दी है तो मैं शर्त लगाऊंगा :-) – Pointy
क्या आपने $_i_want = data.find ('# what-i-want') के साथ भी प्रयास किया था? – earthdesigner
एफवाईआई http://jquery.com/upgrade-guide/1.9/#jquery-htmlstring-versus-jquery-selectorstring। यह कुछ हद तक आपके मुद्दे से संबंधित है। लेकिन आपके संदर्भ के लिए और अधिक। यदि आप एक पूर्ण HTML दस्तावेज़ लौट रहे हैं तो यह अन्य मुद्दों का भी कारण बन जाएगा। – Brian