ฉันจะใช้ JQuery เพื่อค้นหาปุ่มตัวเลือกตามค่าได้อย่างไร
ฉันจะใช้ JQuery เพื่อค้นหาปุ่มตัวเลือกตามค่าได้อย่างไร
คำตอบ:
ลองสิ่งนี้:
$(":radio[value=foobar]")
value="foobar"
นี้จะเลือกปุ่มทั้งหมดที่มีแอตทริบิวต์
function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
ฉันใช้ jQuery 1.6 และไม่ได้ผลสำหรับฉัน: $(":radio[value=foobar]").attr('checked',true);
แต่ฉันใช้: $('[value="foobar"]').attr('checked',true);
และใช้งานได้ดี
รหัสจริงที่ฉันใช้จะล้างวิทยุก่อนและใช้prop
แทนattr
$('[name=menuRadio]').prop('checked',false);
$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);
สิ่งนี้สามารถทำได้เช่นกัน:
$('input[type="radio"][value="aaa"]').val();
เพื่อเลือกวิทยุที่มีค่า aaa
ด้วย.filter()
วิธีการ:
var radio = $('input[type="radio"]').filter(function(){
return this.value === 'aaa';
}).val();
aaa
ส่งกลับ'aaa'
พูดว่าคุณมีสิ่งนี้ใน HTML:
<fieldset>
<input type="radio" name="UI_opt" value="alerter" checked> Alerter<br/>
<input type="radio" name="UI_opt" value="printer"> Printer<br/>
<input type="radio" name="UI_opt" value="consoler"> Consoler<br/>
</fieldset>
สิ่งนี้ก็ใช้ได้ผล
$("fieldset input[name='UI_opt'][checked]").val()
ตัวเลือกแบบเต็มจะมีลักษณะดังนี้:
bool shipToBilling = $("[name=ShipToBillingAddress][value=True]")
เนื่องจากคุณอาจมีกลุ่มปุ่มตัวเลือกแบบนี้มากกว่าหนึ่งกลุ่ม
<input name="ShipToBillingAddress" type="radio" value="True" checked="checked">
<input name="ShipToBillingAddress" type="radio" value="False">
<input name="SomethingElse" type="radio" value="True" checked="checked">
<input name="SomethingElse" type="radio" value="False">
การใช้ตัวเลือก ID เช่นนี้ (ตัวอย่างถัดไป) ไม่ดีเนื่องจากคุณไม่ควรมีหลายองค์ประกอบที่มี ID เดียวกัน ฉันถือว่ามีคนพบคำถามนี้แล้วรู้ว่ามันไม่ดี
$("#DidYouEnjoyTheMovie:radio[value=yes]")
สิ่งต่อไปนี้:radio
อาจเป็นที่สนใจหรือไม่ก็ได้
เนื่องจาก: radio เป็นส่วนขยาย jQuery และไม่ได้เป็นส่วนหนึ่งของข้อกำหนด CSS การสืบค้นโดยใช้: radio จึงไม่สามารถใช้ประโยชน์จากการเพิ่มประสิทธิภาพที่มาจากเมธอด DOM querySelectorAll () ดั้งเดิมได้ เพื่อประสิทธิภาพที่ดีขึ้นในเบราว์เซอร์สมัยใหม่ให้ใช้ [type = "radio"] แทน