2010-04-25 9 views
9

मेरे पास ऐसे वेबफॉर्म पर कुछ टेक्स्टबॉक्स हैं जिनके पास आईडी हैं:jQuery: अद्वितीय आईडी के साथ सभी इनपुट का चयन करें (Regex/वाइल्डकार्ड चयनकर्ता)

txtFinalDeadline_1 
txtFinalDeadline_2 
txtFinalDeadline_3 
txtFinalDeadline_4 

मेरे jQuery में मैं उन सभी को मूल्य निर्दिष्ट करने के लिए कैसे ढूंढूं। इससे पहले कि मेरे पास अंडरस्कोर था और वे सभी को txtFinalDeadline नाम दिया गया था, मैं यह कर सकता था और यह काम करता था।

$(this).find("#txtFinalDeadline").val(formatDate); 

हालांकि, वह तब था जब वे सभी एक ही चीज़ नामित थे। अब मेरे नाम के बाद _x है और मुझे यकीन नहीं है कि उन्हें पहले के समान मूल्य निर्दिष्ट करने के बारे में कैसे जाना है।

उत्तर

6

मैं अगर मैं "क्रम में" गारंटी ले सकते हैं पता नहीं है, लेकिन इस निर्वाचक काम करना चाहिए:

$(this).find('input[id^=textFinalDeadline_]').val(formatDate);

भी तो, jQuery एक विशेष तरीके से id रों को संभालने के लिए अनुकूलित है, और हो सकता है केवल 1 आईडी प्रक्रिया।

इन टेक्स्टफील्डों को कक्षा (शायद date) का उपयोग करने का एक बेहतर तरीका होगा ताकि आप '.date' चयनकर्ता का उपयोग कर सकें।

+0

धन्यवाद। यह काम किया। – d3020

6

वहाँ एक regex या वाइल्डकार्ड करने के लिए कई तरीके का चयन कर रहे हैं:

jQuery चयनकर्ता के इनलाइन वाइल्डकार्ड का उपयोग करना:

$('#textFinalDeadline_\\S*').val(formatDate); 

अद्यतन:मैंने देखा है कि इस विधि नहीं रह गया है के बाद से काम कर रहा है jQuery 1.3.2।

का उपयोग CSS3 के चयनकर्ताओं:

$('input[id^=textFinalDeadline_]').val(formatDate); 

.filter() & match() का उपयोग करना:

$('input').filter(function(){ 
    return this.id.match(/txtFinalDeadline_*/); 
}).val(formatDate); 

अंत में आप एक regex selector उपयोग करने के लिए चाहते हो सकता है।

$('input:regex(id, txtFinalDeadline_*)').val(formatDate); 
संबंधित मुद्दे