Làm cách nào tôi có thể lấy văn bản đã chọn (không phải giá trị đã chọn) từ danh sách thả xuống trong jQuery?
Làm cách nào tôi có thể lấy văn bản đã chọn (không phải giá trị đã chọn) từ danh sách thả xuống trong jQuery?
Câu trả lời:
$("#yourdropdownid option:selected").text();
$("#yourdropdownid").children("option").filter(":selected").text()
vì () trả về một giá trị boolean cho dù đối tượng có khớp với bộ chọn hay không.
is("selected").text()
trả về aTypeError: Object false has no method 'text'
$('select').children(':selected')
là cách nhanh nhất: jsperf.com/get-selected-option-text
Thử cái này:
$("#myselect :selected").text();
Đối với trình đơn thả xuống ASP.NET, bạn có thể sử dụng bộ chọn sau:
$("[id*='MyDropDownId'] :selected")
("#ct0001yourdropdownid)
ID
kiểm soát hay không, và nếu không thì dựa vào chỉ số nơi chúng xảy ra ở cấp độ hiện tại của cây, v.v. )
Các câu trả lời được đăng ở đây, ví dụ,
$('#yourdropdownid option:selected').text();
không làm việc cho tôi, nhưng điều này đã làm:
$('#yourdropdownid').find('option:selected').text();
Nó có thể là một phiên bản cũ hơn của jQuery.
Nếu bạn đã có sẵn danh sách thả xuống trong một biến, đây là thứ phù hợp với tôi:
$("option:selected", myVar).text()
Các câu trả lời khác cho câu hỏi này đã giúp tôi, nhưng cuối cùng, tùy chọn chủ đề của diễn đàn jQuery $ (tùy chọn này + ": được chọn"). Attr ("rel") được chọn không hoạt động trong IE giúp ích nhiều nhất.
Cập nhật: đã sửa liên kết trên
Điều này làm việc cho tôi:
$('#yourdropdownid').find('option:selected').text();
Phiên bản jQuery : 1.9.1
change
sự kiện bây giờ tôi có thể sử dụng $(this).find('option:selected').text()
để nhận văn bản.
$(this).children(':selected').text()
cũng sẽ làm việc @ Timo002
$("#dropdownID").change(function(){
alert($('option:selected', $(this)).text());
});
$(this)
sau cuộc gọi ajax của tôi
Dùng cái này
const select = document.getElementById("yourSelectId");
const selectedIndex = select.selectedIndex;
const selectedValue = select.value;
const selectedText = select.options[selectedIndex].text;
Sau đó, bạn nhận được giá trị lựa chọn của bạn và văn bản bên trong selectedValue
và selectedText
.
var someName = "Test";
$("#<%= ddltest.ClientID %>").each(function () {
$('option', this).each(function () {
if ($(this).text().toLowerCase() == someName) {
$(this).attr('selected', 'selected')
};
});
});
Điều đó sẽ giúp bạn có được hướng đi đúng đắn. Mã trên được kiểm tra đầy đủ nếu bạn cần giúp đỡ thêm cho tôi biết.
Đối với những người đang sử dụng danh sách SharePoint và không muốn sử dụng id được tạo từ lâu, điều này sẽ hoạt động:
var e = $('select[title="IntenalFieldName"] option:selected').text();
$("#selectID option:selected").text();
Thay vì #selectID
bạn có thể sử dụng bất kỳ bộ chọn jQuery nào, như .selectClass
sử dụng lớp.
Như đã đề cập trong tài liệu ở đây .
Bộ chọn: đã chọn hoạt động cho các phần tử <tùy chọn>. Nó không hoạt động cho các hộp kiểm hoặc đầu vào radio; sử dụng :checked
cho họ.
.text () Theo tài liệu ở đây .
Lấy nội dung văn bản kết hợp của từng thành phần trong tập hợp các yếu tố phù hợp, bao gồm cả con cháu của chúng.
Vì vậy, bạn có thể lấy văn bản từ bất kỳ thành phần HTML nào bằng cách sử dụng .text()
phương thức.
Tham khảo tài liệu để được giải thích sâu hơn.
$("select[id=yourDropdownid] option:selected").text()
Cái này hoạt động tốt
Chọn Văn bản và giá trị được chọn khi thả xuống / chọn sự kiện thay đổi trong jQuery
$("#yourdropdownid").change(function() {
console.log($("option:selected", this).text()); //text
console.log($(this).val()); //value
})
Đơn giản chỉ cần thử mã sau đây.
var text= $('#yourslectbox').find(":selected").text();
nó trả về văn bản của tùy chọn đã chọn.
var e = document.getElementById("dropDownId");
var div = e.options[e.selectedIndex].text;
var div = e.options[e.selectedIndex].text;
và nó chỉ hiển thị mục tùy chọn đầu tiên. Làm thế nào để có được từng mục để hiển thị?
Những điều sau đây làm việc cho tôi:
$.trim($('#dropdownId option:selected').html())
Công việc này đối với tôi:
$("#city :selected").text();
Tôi đang sử dụng jQuery 1.10.2
Trong trường hợp anh chị em
<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()
$(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>
Thử:
$var = jQuery("#dropdownid option:selected").val();
alert ($var);
Hoặc để có được văn bản của tùy chọn, sử dụng text()
:
$var = jQuery("#dropdownid option:selected").text();
alert ($var);
Thêm thông tin: