लक्ष्य इनपुट प्रकार और नाम (चयनकर्ता) द्वारा


132

मुझे कुछ चेकबॉक्‍स इनपुट को कुछ के लिए छिपे इनपुटों में बदलने की जरूरत है, लेकिन एक पेज पर सभी इनपुट नहीं।

<input type="checkbox" name="ProductCode"value="396P4"> 
<input type="checkbox" name="ProductCode"value="401P4"> 
<input type="checkbox" name="ProductCode"value="F460129">

नीचे दिया गया jquery कोड केवल इनपुट का चयन करता है जिसके कारण सभी चेक बॉक्स छिपे हुए इनपुट में बदल जाते हैं। क्या दोनों प्रकार के इनपुट = "चेकबॉक्स" और नाम = "ProductCode" को चयनकर्ता के रूप में जांचने का एक तरीका है, इसलिए मैं विशेष रूप से उन लोगों को लक्षित कर सकता हूं कि मैं बदलना चाहता हूँ?

$("input[type='checkbox']").each(function(){
var name = $(this).attr('name'); // grab name of original
var value = $(this).attr('value'); // grab value of original
var html = '<input type="hidden" name="'+name+'" value="'+value+'" />';
$(this).after(html).remove(); // add new, then remove original input
});

जवाबों:


285

आप एक से अधिक गुण चयनकर्ता चाहते हैं

$("input[type='checkbox'][name='ProductCode']").each(function(){ ...

या

$("input:checkbox[name='ProductCode']").each(function(){ ...

सीएसएस वर्ग का उपयोग करना बेहतर होगा, उन लोगों की पहचान करने के लिए जिन्हें आप चुनना चाहते हैं, हालांकि बहुत सारे आधुनिक ब्राउज़र उस document.getElementsByClassNameपद्धति को लागू करते हैं जिसका उपयोग तत्वों का चयन करने और nameविशेषता द्वारा चयन करने की तुलना में बहुत तेज़ होगा।


दोनों ने मेरे लिए काम किया लेकिन मैंने दूसरी विधि का इस्तेमाल किया। THX, मेरे पास एक और सवाल है लेकिन मैं एक नया सवाल करूंगा।
2235 पर user357034

22

आप विशेषता चयनकर्ताओं को इस तरह से जोड़ सकते हैं:

$("[attr1=val][attr2=val]")...

ताकि किसी तत्व को दोनों स्थितियों को पूरा करना पड़े। बेशक आप इसे दो से अधिक के लिए उपयोग कर सकते हैं। इसके अलावा, मत करो [type=checkbox]। jQuery के लिए एक चयनकर्ता है, अर्थात् :checkboxअंतिम परिणाम है:

$("input:checkbox[name=ProductCode]")...

हालाँकि, चयनकर्ता धीमा हैं, लेकिन जहाँ तक संभव हो, ID और वर्ग चयनकर्ताओं का उपयोग करने के लिए अनुशंसित दृष्टिकोण है। आप अपना मार्कअप बदल सकते हैं:

<input type="checkbox" class="ProductCode" name="ProductCode"value="396P4"> 
<input type="checkbox" class="ProductCode" name="ProductCode"value="401P4"> 
<input type="checkbox" class="ProductCode" name="ProductCode"value="F460129">

आपको बहुत तेज़ चयनकर्ता का उपयोग करने की अनुमति देता है:

$("input.ProductCode")...

जाहिर है कि यह भी काम करता है लेकिन मैं सही जवाब के लिए केवल एक व्यक्ति को श्रेय दे सकता हूं। :) एक बात यह है कि मैं तब तक लक्षित नहीं कर सकता जब तक कि मेरे पास कोई मार्कअप नहीं है, जब तक कि मैं एक क्लास नहीं जोड़ता और वह क्या बात करता। लेकिन Thx !!!
2235 पर user357034

6
input[type='checkbox', name='ProductCode']

यह CSS तरीका है और मुझे लगभग यकीन है कि यह jQuery में काम करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.