2012-03-05 13 views
5

पर अपरिभाषित है मुझे एक WordPress विषय में मेरे jquery फ़ंक्शन के साथ कोई समस्या है। मैंने वास्तव में इस समारोह को गंभीर समय का उपयोग किया है और यह काम करता है। फ़ंक्शन एक छवि की आईडी देता है, जिसे वर्डप्रेस अपलोडर के माध्यम से अपलोड किया गया था।.attr ('class') jQuery()

// extract the img-ID from class attribute 
var jt = jQuery('img', html).attr('class'); 
alert(html); 
alert(jt); 
j1 = jt.split(' '); 

दोनों अलर्ट यह पता लगाने की ही देखते हैं, क्या होता है:

यहाँ प्रासंगिक हिस्सा है। अलर्ट (एचटीएमएल) यह देता है:

<img src="http://www.xyz.com/files/2012/03/stage.jpg" alt="" title="" width="1000" height="371" class="alignnone size-full wp-image-6" /> 

लेकिन अलर्ट (जेट) "अपरिभाषित" लौटाता है।

कोई विचार? यह बहुत अच्छा होगा, अगर आप मदद कर सकते हैं।

जनवरी

+0

कोड बताएंगे कि कैसे एचटीएमएल परिभाषित करें और बताएं कि आप क्या आप अलर्ट पर मिल (html) संदर्भ तर्क – charlietfl

+0

के रूप में एचटीएमएल से कोई लेना देना कोशिश कर रहे हैं हो जाता है भावना ... नहीं है? क्या यह एक jqery वस्तु है? – Liviu

+0

.html() के माध्यम से आप टैग के बीच सामग्री के लिए पूछते हैं। टैग एट्रिब्यूट्स के लिए नहीं है। –

उत्तर

6

अपने html चर के साथ संदर्भ तर्क का आपके द्वारा उपयोग सही नहीं है। jQuery documentation प्रति, कि संदर्भ तर्क एक DOM तत्व, एक दस्तावेज़ या एक jQuery वस्तु होना चाहिए। यह एचटीएमएल की एक स्ट्रिंग नहीं हो सकता है।

यदि आपके पास एक स्ट्रिंग है और आप इसे एक DOM ऑब्जेक्ट में बनाना चाहते हैं, तो आप इसे कई तरीकों से कर सकते हैं।

यह कोड आपके द्वारा बनाई गई HTML स्ट्रिंग से एक DOM ऑब्जेक्ट बनाएगा और फिर उस DOM ऑब्जेक्ट से क्लास विशेषता पुनर्प्राप्त करेगा।

var html = '<img src="http://www.xyz.com/files/2012/03/stage.jpg" alt="" title="" width="1000" height="371" class="alignnone size-full wp-image-6" />'; 
var item = jQuery(html); 
var jt = item.attr('class'); 
alert(jt); 
j1 = jt.split(' '); 

आप इसे यहाँ काम देख सकते हैं: http://jsfiddle.net/jfriend00/phnED/

+0

धन्यवाद! वह काम किया!! – jabre

0

attr('class') काम करता है। शायद आपका संदर्भ var (html) बस अपरिभाषित है।

वैसे, डेटा स्टोर करने के लिए, कक्षाओं के बजाय HTML5 custom data- attributes का उपयोग करना समझ में आता है।

+0

एचटीएमएल परिभाषित किया गया है। आप मेरे मूल प्रश्न में एचटीएमएल की सामग्री देख सकते हैं। मुझे पता है कि यह कोड सबसे अच्छा समाधान नहीं है। लेकिन मैं वर्डप्रेस के अपने इमेज अपलोडर का उपयोग करना चाहता हूं और मेरे प्रश्न में यह छवि-टैग एकमात्र चीज है जो यह लौटाती है। मुझे इसका कोई प्रभाव नहीं पड़ता है, क्योंकि मैं एक थीम लिख रहा हूं और कोर फाइलों को संपादित करना एक विकल्प नहीं है। – jabre

0

जब दी एचटीएमएल स्ट्रिंग होने, यह सामान्य रूप से काम करना चाहिए:

$(html).attr('class'); 
+0

नहीं, यह काम नहीं करता है। जेट अभी भी अपरिभाषित है। – jabre

2

आपकी समस्या यहाँ है:

jQuery('img', html) 

संदर्भ html और जाहिरा तौर पर html है एक छवि है, इसलिए आप कर रहे हैं img को img के अंदर ढूंढें जो इसे नहीं मिलेगा।

संपादित करें:
तो html<img src="http://www.xyz.com/files/2012/03/stage.jpg" alt="" title="" width="1000" height="371" class="alignnone size-full wp-image-6" /> है, तो आप इस तरह वर्ग को आकर्षित कर सकते हैं:

var klass = $(html).attr('class'); 

// You could do this to create an array of all classes 
var klasses = $(html).attr('class').match(/\S+/g); 
+0

क्या आपके पास कोई सुझाव है, मैं jQuery ('img', html) के बजाय क्या उपयोग कर सकता हूं? – jabre

+0

मुझे लगता है कि दूसरों के पास भी सही जवाब है लेकिन मैंने अभी अपना जवाब संपादित किया है। यह काम करना चाहिए। – elclanrs

1

संदर्भ चर html आपके द्वारा दी गई उस समय अपरिभाषित है, और आप डोम के रूप में यह परिभाषित करना चाहिए तत्व है कि छवि का एक बच्चा है।

$(document).ready(function() { 
// extract the img-ID from class attribute 
var html = jQuery('.some-class'); 
var jt = jQuery('img', html).attr('class'); 
alert(html); 
alert(jt); 
j1 = jt.split(' '); 
}); 

http://api.jquery.com/jQuery/

http://jsfiddle.net/ssUhJ/

0

एचटीएमएल बिना

var jt = jQuery('img').attr('class'); 
alert(jt); 
j1 = jt.split(' '); 
alert(j1); 
+0

यदि आप उस कोड को समझाते हैं जो आप उपयोग कर रहे हैं तो यह शायद ओपी के लिए उपयोगी होगा। स्पष्टीकरण के बिना कोड का एक टुकड़ा लिखना वास्तव में क्यूए प्रारूप में अच्छा काम नहीं करता है। – sinemetu1

+0

उत्तर (व्याख्या) पोस्ट प्रश्न के ठीक टिप्पणी के रूप में पोस्ट किया गया था। –

0

समस्या, var jt = jQuery('img', html) पर है jquery document से, दूसरा पैरामीटर jQuery वस्तु के संदर्भ है। http://jsfiddle.net/hYKnd/ पर संशोधित प्रोग्राम की जांच करें।

-1

jquery 1.6 के रूप में (docs for .attr देखें), .attrundefined लौटने के लिए खाली स्ट्रिंग लौटने से स्विच किया गया।

ओपन इस jsfiddle http://jsfiddle.net/QVqXC/ और jQuery संस्करण लोड बदल सकते हैं और देखते हैं कि कैसे उत्पादन संदेश बदल जाता है।

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