รับข้อความที่เลือกจากรายการแบบหล่นลง (เลือกกล่อง) โดยใช้ jQuery


2302

ฉันจะรับข้อความที่เลือก (ไม่ใช่ค่าที่เลือก) จากรายการแบบเลื่อนลงใน jQuery ได้อย่างไร


12
แค่สองเซ็นต์ของฉัน: รายการแบบหล่นลง "ASP" นั้นไม่พิเศษ เป็นเพียง HTML ที่ดีเก่า :-)
ankush981

หนึ่งสามารถอ้างถึงบทความนี้: javascriptstutorial.com/blog/ …
Dilip Kumar Yadav

สำหรับวิธี vanilla javascript โปรดดูstackoverflow.com/a/5947/32453
rogerdpack

เพียง $ (นี้) .prop ('เลือก' จริง); แทนที่. at เป็น. prop มันใช้งานได้กับเบราว์เซอร์ทั้งหมด
Shahid Hussain Abbasi

คำตอบ:


3773
$("#yourdropdownid option:selected").text();

207
ฉันคิดว่าสิ่งนี้ควรจะ$("#yourdropdownid").children("option").filter(":selected").text()เนื่องจาก is () คืนค่าบูลีนว่าวัตถุนั้นตรงกับตัวเลือกหรือไม่
MHollis

42
ฉันสองความคิดเห็นเกี่ยวกับ is () คืน boolen; หรือใช้การเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ต่อไปนี้: $ ('# yourdropdownid'). children ("ตัวเลือก: เลือก"). text ();
scubbo

25
@ DT3 ทดสอบis("selected").text()ส่งคืน aTypeError: Object false has no method 'text'
ianace

96
$('select').children(':selected')เป็นวิธีที่เร็วที่สุด: jsperf.com/get-selected-option-text
Simon

3
$ ("# IdSelect"). children ("ตัวเลือก: เลือก"). text ()
JD - DC TECH

266

ลองสิ่งนี้:

$("#myselect :selected").text();

สำหรับ ASP.NET แบบเลื่อนลงคุณสามารถใช้ตัวเลือกต่อไปนี้:

$("[id*='MyDropDownId'] :selected")

รุ่น ASP.NET ที่นี่เป็น Jquery เดียวที่ทำงานร่วมกับ asp.net สำหรับฉันดังนั้นฉันยอมรับที่ อันนี้: ( '$ ("# yourdropdownid ตัวเลือก: เลือก"). text ();'ไม่ทำงานในหน้า asp.net โดยใช้หน้าต้นแบบ
netfed

5
มันใช้งานไม่ได้เพราะเพจต้นแบบของ asp.net มีการสุ่มตัวอักษรต่อหน้าตัวเลือก ในทางเทคนิคแล้วกำลังมองหาสิ่งที่ต้องการ("#ct0001yourdropdownid)
CSharper


1
@Carperper - ฉันคิดว่า ASP.NET พ่นอักขระสุ่มค่อนข้างทำให้เข้าใจผิด พวกเขาไม่ได้สุ่มเลยพวกมันมีโครงสร้างและปฏิบัติตามกฎระเบียบที่เข้มงวด (ขึ้นอยู่กับว่าคุณใส่ตัวIDควบคุมหรือไม่และถ้าไม่ตามดัชนีที่พวกมันเกิดขึ้นในระดับปัจจุบันของต้นไม้ ฯลฯ )
freefaller

สวัสดีคุณจะทำสิ่งนี้ได้อย่างไรภายในแถว / เซลล์ของตารางคุณจะทราบได้อย่างไรว่า Dropdown จากตารางใดโดยเฉพาะใน ASP MVC 5
หม้อแปลง

215

คำตอบที่โพสต์ที่นี่เช่น

$('#yourdropdownid option:selected').text();

ไม่ได้ผลสำหรับฉัน แต่สิ่งนี้ทำได้:

$('#yourdropdownid').find('option:selected').text();

อาจเป็นรุ่นเก่ากว่าของ jQuery


7
อย่าเกลียดคำตอบนี้ การใช้คำหลัก "ค้นหา" เป็นเคล็ดลับสำหรับฉัน ฉันมาจากบริบทที่แตกต่างอย่างสิ้นเชิง
ROFLwTIME

5
คุณไม่จำเป็นต้องมีส่วนของตัวเลือกเลยตามที่เลือกไว้ .. เพียงแค่ใช้ $ ('# yourdropdownid: selected'). text (); จะทำงานได้ดี
Dss

jquery-1.10.2.min อันนี้ใช้ได้กับฉันไม่ใช่คนอื่น
kubilay

คำตอบที่ได้รับความนิยมใช้งานได้ แต่ฉันต้องการมันสำหรับการอ้างอิงที่ได้รับมาแล้วดังนั้นนี่จึงเป็นคำตอบที่ดีที่สุดสำหรับฉัน
Graham

102

หากคุณมีรายการดรอปดาวน์อยู่ในตัวแปรอยู่แล้วนี่คือสิ่งที่เหมาะกับฉัน:

$("option:selected", myVar).text()

คำตอบอื่น ๆ สำหรับคำถามนี้ช่วยฉัน แต่ท้ายที่สุดแล้วฟอรัม jQuery กระทู้$ (ตัวเลือก + "นี้: เลือก") ตัวเลือก attr ("rel") ที่เลือกไม่ทำงานใน IEช่วยมากที่สุด

อัพเดท: แก้ไขลิงค์ด้านบน


67

มันใช้งานได้สำหรับฉัน

$("#dropdownid").change(function() {
    alert($(this).find("option:selected").text());
});

ถ้าองค์ประกอบสร้างแบบไดนามิก

$(document).on("change", "#dropdownid", function() {
    alert($(this).find("option:selected").text());
});


55

$("#DropDownID").val() จะให้ค่าดัชนีที่เลือก


37
ไม่ใช่คำตอบสำหรับคำถาม แต่มีประโยชน์สำหรับฉัน คำถามต้องการข้อความที่เลือก
ปีเตอร์

54

สิ่งนี้ใช้ได้กับฉัน:

$('#yourdropdownid').find('option:selected').text();

รุ่นjQuery : 1.9.1


3
สิ่งนี้ใช้ได้กับฉันเพราะในchangeเหตุการณ์ที่ฉันสามารถใช้$(this).find('option:selected').text()เพื่อรับข้อความ
Timo002

$(this).children(':selected').text()ก็จะทำงานเช่นกัน @ Timo002
นายหมาก

42

สำหรับข้อความของรายการที่เลือกใช้:

$('select[name="thegivenname"] option:selected').text();

สำหรับมูลค่าของรายการที่เลือกใช้:

$('select[name="thegivenname"] option:selected').val();

33

หลากหลายวิธี

1. $("#myselect option:selected").text();

2. $("#myselect :selected").text();

3. $("#myselect").children(":selected").text();

4. $("#myselect").find(":selected").text();

31
$("#dropdownID").change(function(){
  alert($('option:selected', $(this)).text());
});

นี่คือสิ่งที่ฉันคาดหวัง$(this) หลังจากโทรอาแจ็กซ์ของฉัน
Shantaram Tupe

คุณยังสามารถทำ $ ("ตัวเลือก: เลือก", นี้) .text () โดยไม่ต้องใส่คำสั่งนี้ในวัตถุ JQuery
Doug F

28

ใช้สิ่งนี้

const select = document.getElementById("yourSelectId");

const selectedIndex = select.selectedIndex;
const selectedValue = select.value;
const selectedText = select.options[selectedIndex].text;   

จากนั้นคุณจะได้รับความคุ้มค่าและข้อความให้อยู่ในที่ที่คุณเลือกและselectedValueselectedText


1
เพิ่มขึ้นเนื่องจากนี่เป็นคำตอบเดียวที่ไม่ได้ใช้ jQuery
Justin Lessard

ฉันด้วยความรักกับวานิลลา js ขอบคุณมากสำหรับสิ่งนี้
Enrique Bermúdez

27
var someName = "Test";

$("#<%= ddltest.ClientID %>").each(function () {
    $('option', this).each(function () {
        if ($(this).text().toLowerCase() == someName) {
            $(this).attr('selected', 'selected')
        };
    });
});

ที่จะช่วยให้คุณได้รับทิศทางที่ถูกต้อง รหัสข้างต้นได้รับการทดสอบอย่างสมบูรณ์หากคุณต้องการความช่วยเหลือเพิ่มเติมโปรดแจ้งให้เราทราบ


19

สำหรับผู้ที่ใช้รายการSharePointและไม่ต้องการใช้รหัสที่สร้างขึ้นแบบยาวสิ่งนี้จะใช้ได้:

var e = $('select[title="IntenalFieldName"] option:selected').text();

17
 $("#selectID option:selected").text();

แทนที่จะเป็น#selectIDคุณสามารถใช้ตัวเลือก jQuery เช่น.selectClassใช้คลาส

เป็นที่กล่าวถึงในเอกสารประกอบที่นี่

กระบวนการ: ตัวเลือกที่เลือกทำงานได้กับองค์ประกอบ <option> มันไม่ทำงานสำหรับช่องทำเครื่องหมายหรืออินพุตวิทยุ ใช้:checkedสำหรับพวกเขา

.Text ()ตามเอกสารที่นี่

รับเนื้อหาข้อความรวมของแต่ละองค์ประกอบในชุดขององค์ประกอบที่ตรงกันรวมถึงลูกหลานของพวกเขา

ดังนั้นคุณสามารถนำข้อความจากองค์ประกอบ HTML ใด ๆ โดยใช้.text()วิธีการ

อ้างถึงเอกสารสำหรับคำอธิบายที่ลึกซึ้งยิ่งขึ้น



13

สำหรับการรับค่าการใช้งานที่เลือก

$('#dropDownId').val();

และสำหรับการรับข้อความรายการที่เลือกใช้บรรทัดนี้:

$("#dropDownId option:selected").text();


11

เลือกข้อความและค่าที่เลือกเมื่อเลื่อนลง / เลือกเปลี่ยนเหตุการณ์ใน jQuery

$("#yourdropdownid").change(function() {
    console.log($("option:selected", this).text()); //text
    console.log($(this).val()); //value
})

10

ลองใช้รหัสต่อไปนี้

var text= $('#yourslectbox').find(":selected").text();

มันจะส่งคืนข้อความของตัวเลือกที่เลือก



9
var e = document.getElementById("dropDownId");
var div = e.options[e.selectedIndex].text;

ฉันลองเข้าสู่ระบบ div var div = e.options[e.selectedIndex].text;และแสดงเฉพาะรายการตัวเลือกแรกเท่านั้น จะแสดงแต่ละรายการได้อย่างไร
Chris22

@ Chris22 อ้างอิงลิงค์นี้stackoverflow.com/questions/3923858/…
Kalaivani M



7

ในกรณีพี่น้อง

<a class="uibutton confirm addClient" href="javascript:void(0);">ADD Client</a>
<input type="text" placeholder="Enter client name" style="margin: 5px;float: right" class="clientsearch large" />
<select class="mychzn-select clientList">
  <option value="">Select Client name....</option>
  <option value="1">abc</option>
</select>


 /*jQuery*/
 $(this).siblings('select').children(':selected').text()

7

$(function () {
  alert('.val() = ' + $('#selectnumber').val() + '  AND  html() = ' + $('#selectnumber option:selected').html() + '  AND .text() = ' + $('#selectnumber option:selected').text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
    <title></title>

  </head>
  <body>
    <form id="form1" runat="server">
      <div>
        <select id="selectnumber">
          <option value="1">one</option>
          <option value="2">two</option>
          <option value="3">three</option>
          <option value="4">four</option>
        </select>

      </div>
    </form>
  </body>
</html>

คลิกเพื่อดูหน้าจอ OutPut


สวัสดีอย่างไรคุณทำเช่นนี้ภายในแถวตาราง / มือถือ , วิธีการทำคุณทราบว่าของหล่นลงมาจากโต๊ะได้หรือไม่ ฉันพยายามโทร ajax เพื่อดึงและเติมค่าฉันสามารถทำสิ่งนี้นอกหน้า แต่ไม่ได้อยู่ใน Table Row ... คุณช่วยเพิ่มความช่วยเหลือได้ไหม
หม้อแปลง


4

หากคุณต้องการผลลัพธ์เป็นรายการให้ใช้:

x=[];
$("#list_id").children(':selected').each(function(){x.push($(this).text());})

2
$("#dropdown").find(":selected").text();


$("#dropdown :selected").text();

$("#dropdown option:selected").text();

$("#dropdown").children(":selected").text();

อธิบายว่าทำไมจึงใช้ได้
jwenting

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