Câu hỏi jQuery có văn bản thẻ tùy chọn cụ thể


Được rồi, nói rằng tôi có điều này:

<select id='list'>
    <option value='1'>Option A</option>
    <option value='2'>Option B</option>
    <option value='3'>Option C</option>
</select>

Bộ chọn sẽ trông như thế nào nếu tôi muốn nhận "Tùy chọn B" khi tôi có giá trị '2'?

Xin lưu ý rằng đây không phải là yêu cầu làm thế nào để có được đã chọn giá trị văn bản, nhưng chỉ bất kỳ một trong số chúng, dù được chọn hay không, tùy thuộc vào thuộc tính giá trị. Tôi đã thử:

$("#list[value='2']").text();

Nhưng nó không hoạt động.


1140
2017-10-13 04:06


gốc


Trong khoảng thời gian này, hãy sử dụng: $("#list option").filter(function () { return $(this).html() == "stuff"; }).val(); - rook


Các câu trả lời:


Nó đang tìm kiếm một phần tử có id list có tài sản value bằng 2. Những gì bạn muốn là option con của list.

$("#list option[value='2']").text()

1052
2017-10-13 04:08



Cảm ơn bạn cho nickf này. Đây là câu trả lời mở rộng nếu bạn muốn lấy giá trị động: var selectValue = document.getElementById ('list'). var selectOption = $ ("# list option [value =" + selectValue + "]"). văn bản (); /// nickf ví dụ hay. - Kevin Florida
@Kevin, trong trường hợp đó, bạn có thể muốn sử dụng câu trả lời bên dưới câu trả lời này. $('#list option:selected').text() - nickf
@nickf và đơn giản hơn, $('#list').val() - Derek 朕會功夫
@ Derek, val () sẽ không cung cấp cho các văn bản của các tùy chọn, nó sẽ cung cấp cho giá trị của nó, mà trong một số trường hợp (nhiều người tôi dám nói) là không giống nhau. - itsmequinn
Cảm ơn @nickf! Bạn đúng! Nó hoạt động !!! - Henock Bongi


Nếu bạn muốn có tùy chọn với giá trị là 2, hãy sử dụng

$("#list option[value='2']").text();

Nếu bạn muốn nhận tùy chọn nào hiện được chọn, hãy sử dụng

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

1239
2018-05-15 15:52



Để có được giá trị thay vì văn bản, bạn sẽ cần phải viết: - $ ("select # list"). Val (); Tôi biết rằng đây không phải là câu trả lời thực tế của câu hỏi được hỏi, nhưng vẫn nghĩ đến việc đề cập đến điểm này cho những người mới đến qua Google. - Knowledge Craving
Tôi sử dụng $ ("# list option: selected"). Text () và $ ("# list option: selected"). Attr ('giá trị') - fullstacklife
Để nhận được văn bản đã chọn (mặc dù câu hỏi không yêu cầu cụ thể), phương pháp này vượt trội do không phải biết giá trị được chọn là gì. - theJerm


Điều này làm việc hoàn hảo cho tôi, tôi đã tìm kiếm một cách để gửi hai giá trị khác nhau với các tùy chọn được tạo ra bởi MySQL, và sau đây là chung chung và năng động:

$(this).find("option:selected").text();

Như đã đề cập trong một trong các bình luận. Với điều này tôi đã có thể tạo ra một chức năng năng động mà làm việc với tất cả các hộp lựa chọn của tôi mà tôi muốn có được cả hai giá trị, giá trị tùy chọn và văn bản.

Vài ngày trước, tôi nhận thấy rằng khi cập nhật jQuery từ 1.6 đến 1.9 của trang web tôi đã sử dụng mã này, việc ngừng hoạt động này ... có thể là xung đột với một đoạn mã khác ... dù sao, giải pháp là xóa tùy chọn khỏi find () gọi:

$(this).find(":selected").text();

Đó là giải pháp của tôi ... sử dụng nó chỉ khi bạn có bất kỳ vấn đề sau khi cập nhật jQuery của bạn.


116
2017-07-29 18:55



được cho là đây là cách hiệu quả hơn để làm điều đó theo WebStorm 8. - dbinott
Trong khi câu trả lời này là sâu sắc và giúp tôi với một vấn đề tôi đã có, để nitpick, nó không trả lời đúng câu hỏi: Xin lưu ý rằng đây không phải là yêu cầu làm thế nào để có được giá trị văn bản đã chọn, nhưng chỉ bất kỳ một trong số chúng, dù được chọn hay không, tùy thuộc vào thuộc tính giá trị. - StubbornShowaGuy
giải pháp này hoạt động tốt nhất cho tôi, cảm ơn! - Hank


Dựa trên bản gốc HTML được đăng bởi Paolo tôi đã đưa ra những điều sau đây.

$("#list").change(function() {
    alert($(this).find("option:selected").text()+' clicked!');
});

Nó đã được thử nghiệm để làm việc trên Internet Explorer và Firefox.


107
2018-05-02 12:25



Một thay thế cho điều này là: $ ("option: selected", this) .text () - Doug S
Đây là một câu trả lời tốt hơn vì nó giải thích cho các tình huống phức tạp không chỉ là html tĩnh và các sự kiện javascript đơn giản. - oasisfleeting


$("#list option:selected").each(function() {
   alert($(this).text());
});  

cho nhiều giá trị được chọn trong #list thành phần.


36
2018-06-04 14:30





  1. Nếu chỉ có một thẻ chọn trong trang thì bạn có thể chỉ định chọn bên trong của id 'list'

    jQuery("select option[value=2]").text();
    
  2. Để nhận văn bản đã chọn

    jQuery("select option:selected").text();
    

36
2018-06-13 03:45





Hãy thử những điều sau đây:

$("#list option[value=2]").text();

Lý do khiến đoạn mã gốc của bạn không hoạt động là vì OPTION thẻ là con cái của bạn SELECT có thẻ id  list.


23
2017-10-13 04:08



$ ('# list option [value = "2"]'). văn bản (); // bộ chọn chính xác - Evgeni Nabokov


Đây là một câu hỏi cũ chưa được cập nhật trong một thời gian, cách chính xác để thực hiện việc này ngay bây giờ là sử dụng

$("#action").on('change',function() {
    alert($(this).find("option:selected").text()+' clicked!');
});

Tôi hi vọng cái này giúp được :-)


19
2017-07-02 23:15



Điều này chắc chắn không chính xác Xin lưu ý rằng điều này không yêu cầu cách nhận giá trị văn bản đã chọn - DelightedD0D


$(this).children(":selected").text()

17
2018-04-03 11:21



Điều này làm việc tốt nhất trong Jquery bây giờ một ngày. - Case
Unfortunatelly, điều này không hoạt động khi bạn có optgroup như một đứa trẻ của bạn select và tùy chọn đã chọn nằm trong optgroup. sử dụng $("#list option:selected").text(); hoạt động ngay cả trong trường hợp này - MartinM


Tôi muốn nhận được nhãn đã chọn. Điều này làm việc cho tôi trong jQuery 1.5.1.

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

16
2018-03-01 05:44