จะรับ label of select option ด้วย jQuery ได้อย่างไร?


114
<select>
<option value="test">label </option>
</select>

$select.val()ค่าที่สามารถเรียกดูได้จาก

สิ่งที่เกี่ยวกับlabel?

มีวิธีแก้ปัญหาที่จะทำงานใน IE6 หรือไม่?


คุณหมายถึงวิธีรับค่าที่เลือกค่าที่เลือก? ซึ่งอยู่ในป้ายกำกับกรณีของคุณ
มด

คำถามนี้ควรเปลี่ยนคำใหม่ว่า "จะรับข้อความของตัวเลือกที่เลือกด้วย jQuery ได้อย่างไร" และการอ้างอิงป้ายกำกับทั้งหมดควรถูกแทนที่ด้วยข้อความเพื่อหลีกเลี่ยงความสับสนกับแอตทริบิวต์ label
Joel Davis

คำตอบ:


221

ลองสิ่งนี้:

$('select option:selected').text();

3
สิ่งนี้ไม่ถูกต้องเสมอไป คำอธิบายที่แสดงของตัวเลือกสามารถระบุโดยแอตทริบิวต์ "label" ได้เช่นกัน (ยกเว้น <= IE7) ดูw3schools.com/tags/att_option_label.asp#gsc.tab=0และw3.org/TR/html401/interact/forms.html#h-17.6
Scott Stafford

3
ในการรับแอตทริบิวต์labelสามารถใช้: jQuery ('# theid option: selected'). attr ('label')
David Balažic

22

สวัสดีก่อนอื่นให้รหัสแก่ผู้เลือกเป็น

<select id=theid>
<option value="test">label </option>
</select>

จากนั้นคุณสามารถเรียกป้ายกำกับที่เลือกได้ดังนี้:

jQuery('#theid option:selected').text()

13

สำหรับการอ้างอิงยังมีlabelแอตทริบิวต์รองบนแท็กตัวเลือก:

//returns "GET THIS" when option is selected
$('#selecter :selected').attr('label'); 

html

<select id="selecter">
<option value="test" label="GET THIS">
Option (also called label)</option>
</select>

6

หากต้องการรับป้ายกำกับของตัวเลือกเฉพาะในเมนูแบบเลื่อนลงคุณสามารถพิมพ์สิ่งนี้ -

$('.class_of_dropdown > option[value='value_to_be_searched']').html();

หรือ

$('#id_of_dropdown > option[value='value_to_be_Searched']').html();

3

ฉันพบว่าสิ่งนี้มีประโยชน์

$('select[name=users] option:selected').text()

เมื่อเข้าถึงตัวเลือกโดยใช้thisคีย์เวิร์ด

$(this).find('option:selected').text()


2

ลองสิ่งนี้:

$('select option:selected').prop('label');

สิ่งนี้จะดึงข้อความที่แสดงสำหรับ<option>องค์ประกอบทั้งสองสไตล์:

  • <option label="foo"><option> -> "foo"
  • <option>bar<option> -> "bar"

หากมีทั้งlabelแอตทริบิวต์และข้อความภายในองค์ประกอบจะใช้labelแอตทริบิวต์ซึ่งเป็นลักษณะการทำงานเดียวกับเบราว์เซอร์

สำหรับลูกหลานสิ่งนี้ได้รับการทดสอบภายใต้ jQuery 3.1.1




0

ในเบราว์เซอร์สมัยใหม่คุณไม่จำเป็นต้องใช้ JQuery สำหรับสิ่งนี้ ใช้แทน

document.querySelectorAll('option:checked')

หรือระบุองค์ประกอบ DOM ใด ๆ แทน document


-2

คุณกำลังมองหา $select.html()

http://api.jquery.com/html/


1
เพียงแค่ส่งคืน html สำหรับองค์ประกอบตัวเลือกทั้งหมด ข้อความป้ายกำกับอยู่ / ใน / ที่นั่นบางแห่ง แต่ไม่ใช่วิธีที่มีประสิทธิภาพสูงสุดในการเข้าถึง
MSpreij
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.