Jak mogę uzyskać zaznaczony tekst (nie wybraną wartość) z rozwijanej listy w jQuery?
Jak mogę uzyskać zaznaczony tekst (nie wybraną wartość) z rozwijanej listy w jQuery?
Odpowiedzi:
$("#yourdropdownid option:selected").text();
$("#yourdropdownid").children("option").filter(":selected").text()
ponieważ is () zwraca wartość logiczną tego, czy obiekt pasuje do selektora, czy nie.
is("selected").text()
zwraca aTypeError: Object false has no method 'text'
$('select').children(':selected')
jest najszybszym sposobem: jsperf.com/get-selected-option-text
Spróbuj tego:
$("#myselect :selected").text();
Do rozwijanego menu ASP.NET można użyć następującego selektora:
$("[id*='MyDropDownId'] :selected")
("#ct0001yourdropdownid)
ID
kontroli, a jeśli nie, to na podstawie indeksu miejsca, w którym występują na bieżącym poziomie drzewa itp. )
Odpowiedzi zamieszczone tutaj, na przykład,
$('#yourdropdownid option:selected').text();
nie działało dla mnie, ale to:
$('#yourdropdownid').find('option:selected').text();
Jest to prawdopodobnie starsza wersja jQuery.
Jeśli masz już listę rozwijaną dostępną w zmiennej, to działa dla mnie:
$("option:selected", myVar).text()
Inne odpowiedzi na to pytanie pomogły mi, ale ostatecznie wątek forum jQuery $ (ta + „opcja: wybrana”). Wybrana opcja attr („rel”) nie działa w IE najbardziej pomogła.
Aktualizacja: naprawiono powyższy link
To działa dla mnie
$("#dropdownid").change(function() {
alert($(this).find("option:selected").text());
});
Jeśli element tworzony jest dynamicznie
$(document).on("change", "#dropdownid", function() {
alert($(this).find("option:selected").text());
});
Użyj tego
const select = document.getElementById("yourSelectId");
const selectedIndex = select.selectedIndex;
const selectedValue = select.value;
const selectedText = select.options[selectedIndex].text;
Następnie otrzymasz wybraną wartość i tekst w środku selectedValue
i selectedText
.
var someName = "Test";
$("#<%= ddltest.ClientID %>").each(function () {
$('option', this).each(function () {
if ($(this).text().toLowerCase() == someName) {
$(this).attr('selected', 'selected')
};
});
});
Pomoże Ci to we właściwym kierunku. Powyższy kod jest w pełni przetestowany, jeśli potrzebujesz dalszej pomocy, daj mi znać.
Dla tych, którzy używają list SharePoint i nie chcą używać długo generowanego identyfikatora, zadziała to:
var e = $('select[title="IntenalFieldName"] option:selected').text();
$("#selectID option:selected").text();
Zamiast tego #selectID
możesz użyć dowolnego selektora jQuery, takiego jak .selectClass
użycie class.
Jak wspomniano w dokumentacji tutaj .
Selektor: selected działa dla elementów <option>. Nie działa dla pól wyboru ani wejść radiowych; użyj :checked
dla nich.
.text () Zgodnie z dokumentacją tutaj .
Uzyskaj połączoną zawartość tekstową każdego elementu w zestawie dopasowanych elementów, w tym ich potomków.
Możesz więc pobrać tekst z dowolnego elementu HTML przy użyciu tej .text()
metody.
Bardziej szczegółowe wyjaśnienia znajdują się w dokumentacji.
$("select[id=yourDropdownid] option:selected").text()
To działa dobrze
Wybierz Tekst i wybraną wartość w menu rozwijanym / wybierz zdarzenie zmiany w jQuery
$("#yourdropdownid").change(function() {
console.log($("option:selected", this).text()); //text
console.log($(this).val()); //value
})
Po prostu wypróbuj następujący kod.
var text= $('#yourslectbox').find(":selected").text();
zwraca tekst wybranej opcji.
var e = document.getElementById("dropDownId");
var div = e.options[e.selectedIndex].text;
var div = e.options[e.selectedIndex].text;
i wyświetla tylko pierwszy element opcji. Jak sprawić, by każdy element był wyświetlany?
działało dla mnie:
$.trim($('#dropdownId option:selected').html())
Ta praca dla mnie:
$("#city :selected").text();
Używam jQuery 1.10.2
W przypadku rodzeństwa
<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>
Próbować:
$var = jQuery("#dropdownid option:selected").val();
alert ($var);
Lub, aby uzyskać tekst opcji, użyj text()
:
$var = jQuery("#dropdownid option:selected").text();
alert ($var);
Więcej informacji: