2011-09-30 2 views
7

मैं इस चयनकर्ता $("textarea #myTextArea").val(text); का उपयोग कर रहा हूं और यह काम नहीं कर रहा है। अगर मैं आईडी हटा देता हूं और कक्षा का उपयोग करता हूं तो यह काम कर रहा है। यहां तत्व को खोजने में सक्षम क्यों नहीं है?तत्व प्रकार और आईडी वाले jquery चयनकर्ता का उपयोग कैसे करें

+4

FYI करें, सिर्फ आईडी jQuery में अनुकूलित है - आप डाउन चयनकर्ता काफी –

+0

डैनियल सही है धीमा हो जाएगा, तो आप केवल $ ("myTextArea") के बजाय अपने चयनकर्ता का उपयोग करना चाहिए। यह सीधे जावास्क्रिप्ट के getElementById() का उपयोग करता है, इसलिए यह तेज़ और कुशल है। अपने चयनकर्ता का उपयोग करते समय, स्क्रिप्ट सभी तत्वों (इस मामले में textareas) का चयन करेगा और जब तक यह उचित नहीं मिल जाता तब तक उनके माध्यम से पुन: प्रयास करें। – Przemek

+0

हां, लेकिन मैं ऐसा नहीं कर सकता क्योंकि एक ही आईडी का उपयोग किया जाता है, जहां उसी पृष्ठ में, मुझे पता है कि यह भयानक है, लेकिन मुझे इसके साथ रहना है। – Manoj

उत्तर

26
अंतरिक्ष की वजह से

। अंतरिक्ष के साथ यह #myTextAreatextarea के भीतर कहता है।

$("textarea#myTextArea").val(text); 
+1

"पाठ क्षेत्र" बस निरर्थक नहीं है इस सवाल का जवाब संपादित किया है। यह लगभग 80% धीमी है। यहां, मैंने एक परीक्षण बनाया: http://jsperf.com/jquery-selector-performance-test123 – Alex

4

बस खाली स्थान हटाएं: इस समय

$("textarea#myTextArea").val(text); 

आप आईडी myTextArea साथ एक तत्व का वंशज तत्व है कि चयन करने के लिए कोशिश कर रहे हैं एक textarea

जारेड Farrish टिप्पणी में उल्लेख के रूप में दूर करने तत्व प्रकार अधिक कुशल होगा:

$("#myTextArea").val(text); 

यदि आपका दस्तावेज़ मान्य है तो प्रत्येक आईडी केवल एक बार उपयोग की जाएगी यह अभी भी सही है।

+0

या 'textarea' को पूरी तरह से हटा दें। –

+3

@Manoj के लिए स्पष्ट करने के लिए, जब आप एक स्थान का उपयोग यह आईडी myTextArea है कि आपके पाठ क्षेत्र के * * वंशज हैं साथ तत्वों का चयन करने की कोशिश करेंगे। – Kasaku

+0

@PirateKitten +1 मैं प्रतिबिंबित करने के लिए है कि – Clive

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