2013-02-06 60 views
10

इसउपयोग jQuery लक्ष्य

$('ul').click(function() { 
theEl=(event.target.text); 
}); 

की तरह कोड के साथ एक बिना क्रम वाली सूची

<ul> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li>Item 3</li> 
</ul> 

से एक घटना के लक्ष्य तत्व का पाठ पाने के लिए जब मैं लॉग ऑन कंसोल

event.target 
कोशिश कर रहा है के पाठ प्राप्त करने के लिए

यह

देता है

और

event.target.text

रिटर्न अपरिभाषित

मैं बस चाहता हूँ 'आइटम 1'। मैं जानता हूँ कि मैंने पहले यह किया है - यह देर से होना चाहिए ... किसी भी सहायता :)

उत्तर

18

उपयोग jQuery के पाठ समारोह के लिए धन्यवाद:

$(event.target).text() 
7

आप कच्चे जे एस और jQuery भ्रमित कर रहे हैं।

jQuery में, आप $(event.target).text()

प्रयोग करेंगे हालांकि, यह जावास्क्रिप्ट में बहुत अधिक कुशल है: event.target.firstChild.nodeValue

संपादित करें: यहाँ सबूत के रूप में एक JSPerf है।

+0

अच्छा जेएसपीरफ़ - जेएस में तेज़ी से रास्ता! जेफ के सही उत्तर के रूप में चिह्नित बी/सी वह जवाब देने वाला पहला था, लेकिन विस्तार के लिए धन्यवाद। –

2

कारण event.target.text अनिर्धारित है क्योंकि HTMLElement में उस विधि या संपत्ति को परिभाषित नहीं किया गया है। हालांकि, jQuery में text() है जो आप खोज रहे थे। JQuery विधियों या गुणों तक पहुंचने के लिए, आपको jquery ऑब्जेक्ट में वर्तमान HTMLElement को लपेटने की आवश्यकता है। यह jQuery को पास करके किया जाता है, जो इसके साथ एक फ़ंक्शन ऑब्जेक्ट बनाता है, और jQuery प्रोटोटाइप जो API को उजागर करता है।

jQuery(element);//in general 
$(event.target).text();//for your situation 
0
event.target.textContent 

यह जावास्क्रिप्ट का उपयोग भी है। मैं आपको के साथ 'क्रोम' (या फ़ायरफ़ॉक्स) जावास्क्रिप्ट कंसोल निष्पादित करने की सलाह देता हूं। अपने कोड में लिखें: console.log(event) और कंसोल पर बाहर देखें। आप ऑब्जेक्ट की हर विशेषता देख सकते हैं।