jQuery get specific option tag text
W porządku, powiedzmy, że mam to:
<select id='list'>
<option value='1'>Option A</option>
<option value='2'>Option B</option>
<option value='3'>Option C</option>
</select>
Jak wyglądałby selektor, gdybym chciał uzyskać "opcję B", gdy mam wartość '2'?
Należy pamiętać, że nie jest to pytanie, Jak uzyskać wartość tekstową selected , ale tylko jedną z nich, niezależnie od tego, czy jest ona wybrana, czy nie, w zależności od atrybutu value. Próbowałem:
$("#list[value='2']").text();
Ale to nie działa. 20 answers
Szuka elementu o id list
, który ma właściwość value
równą 2. To czego pragniesz to option
Dziecko list
.
$("#list option[value='2']").text()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-13 04:08:03
Jeśli chcesz uzyskać opcję o wartości 2, Użyj
$("#list option[value='2']").text();
Jeśli chcesz uzyskać wybraną opcję, Użyj
$("#list option:selected").text();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-30 16:01:21
To działało idealnie dla mnie, szukałem sposobu, aby wysłać dwie różne wartości z opcjami generowanymi przez MySQL, a poniżej jest ogólny i dynamiczny:
$(this).find("option:selected").text();
Jak wspomniano w jednym z komentarzy. Dzięki temu udało mi się stworzyć dynamiczną funkcję, która działa ze wszystkimi moimi polami wyboru, które chcę uzyskać zarówno wartości, wartość opcji, jak i tekst.
Kilka dni temu zauważyłem, że aktualizując jQuery z 1.6 do 1.9 strony użyłem tego kodu, to przestań pracować... prawdopodobnie był to konflikt z innym fragmentem kodu... w każdym razie rozwiązaniem było usunięcie opcji z wywołania find ():
$(this).find(":selected").text();
To było moje rozwiązanie... używaj go tylko wtedy, gdy masz jakiś problem po aktualizacji jQuery.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-29 16:15:44
Na podstawie oryginalnego HTML opublikowanego przez Paolo, wymyśliłem następujące rzeczy.
$("#list").change(function() {
alert($(this).find("option:selected").text()+' clicked!');
});
Został przetestowany do pracy na Internet Explorer i Firefox.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-25 09:44:38
$("#list option:selected").each(function() {
alert($(this).text());
});
Dla wielu wybranych wartości w elemencie #list
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-23 13:40:19
-
Jeśli na stronie znajduje się tylko jeden znacznik select, możesz określić select wewnątrz id 'list'
jQuery("select option[value=2]").text();
-
Aby uzyskać zaznaczony tekst
jQuery("select option:selected").text();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-19 03:27:02
Spróbuj:
$("#list option[value=2]").text();
Powodem, dla którego twój oryginalny fragment nie działał, jest to, że Twoje tagi OPTION
są dziećmi twojego tagu SELECT
, który ma id
list
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-13 04:08:45
Jest to stare pytanie, które nie zostało zaktualizowane przez jakiś czas, poprawnym sposobem zrobienia tego teraz byłoby użycie
$("#action").on('change',function() {
alert($(this).find("option:selected").text()+' clicked!');
});
Mam nadzieję, że to pomoże: -)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-17 16:37:28
$(this).children(":selected").text()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-03 11:21:19
Chciałem dostać wybraną etykietę. To działało u mnie w jQuery 1.5.1.
$("#list :selected").text();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-25 09:42:40
$("#list [value='2']").text();
Pozostaw spację po selektorze id.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-08 11:29:44
Można uzyskać zaznaczony tekst opcji za pomocą funkcji .text();
Możesz wywołać funkcję w następujący sposób:
jQuery("select option:selected").text();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-02 10:49:56
Podczas" zapętlania " przez dynamicznie tworzone elementy zaznaczamy za pomocą .each (function ()...): $("option:selected").text();
i $(this + " option:selected").text()
nie zwróciły zaznaczonego tekstu opcji - zamiast tego było null.
Ale rozwiązanie Petera Mortensena zadziałało:
$(this).find("option:selected").text();
Nie wiem, dlaczego zwykły sposób nie udaje się .each()
(prawdopodobnie mój własny błąd), ale dziękuję, Peter. Wiem, że to nie było oryginalne pytanie, ale wspominam o nim "dla początkujących, którzy przychodzą przez Google."
Zacząłbym od $('#list option:selected").each()
poza tym, że musiałem też pobrać rzeczy z elementu select.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-26 19:04:13
Użycie:
function selected_state(){
jQuery("#list option").each(function(){
if(jQuery(this).val() == "2"){
jQuery(this).attr("selected","selected");
return false;
}
});
}
jQuery(document).ready(function(){
selected_state();
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-11 16:06:20
Szukałem uzyskania val przez wewnętrzną nazwę pola zamiast ID i przyszedłem z google do tego postu, który pomógł, ale nie znalazłem rozwiązania, którego potrzebuję, ale mam rozwiązanie i oto jest:
Więc może to pomóc komuś, kto szuka wybranej wartości z nazwą wewnętrzną pola, zamiast używać długiego id dla list SharePoint:
var e = $('select[title="IntenalFieldName"] option:selected').text();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-05 21:57:29
Potrzebowałem tej odpowiedzi, ponieważ miałem do czynienia z dynamicznie rzucanym obiektem, a inne metody tutaj nie działały:
element.options[element.selectedIndex].text
To oczywiście używa obiektu DOM zamiast parsowania kodu HTML za pomocą nodeValue, childNodes, itp.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-18 21:50:55
WSKAZÓWKA: Możesz użyć poniższego kodu, jeśli twoja wartość jest dynamiczna:
$("#list option[value='"+aDynamicValue+"']").text();
Lub (lepszy styl)
$("#list option").filter(function() {
return this.value === aDynamicValue;
}).text();
Jak wspomniano w jQuery get specific option tag text and placeing dynamic variable to the value
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:30
Jako alternatywne rozwiązanie, możesz również użyć części kontekstowej selektora jQuery , aby znaleźć <option>
element(Y) Z value="2"
wewnątrz rozwijanej listy:
$("option[value='2']", "#list").text();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-20 14:57:54
Chciałem dynamiczną wersję dla select multiple, która wyświetla to, co jest zaznaczone po prawej stronie (chciałbym przeczytać i zobaczyć $(this).find
... wcześniej): {]}
<script type="text/javascript">
$(document).ready(function(){
$("select[showChoices]").each(function(){
$(this).after("<span id='spn"+$(this).attr('id')+"' style='border:1px solid black;width:100px;float:left;white-space:nowrap;'> </span>");
doShowSelected($(this).attr('id'));//shows initial selections
}).change(function(){
doShowSelected($(this).attr('id'));//as user makes new selections
});
});
function doShowSelected(inId){
var aryVals=$("#"+inId).val();
var selText="";
for(var i=0; i<aryVals.length; i++){
var o="#"+inId+" option[value='"+aryVals[i]+"']";
selText+=$(o).text()+"<br>";
}
$("#spn"+inId).html(selText);
}
</script>
<select style="float:left;" multiple="true" id="mySelect" name="mySelect" showChoices="true">
<option selected="selected" value=1>opt 1</option>
<option selected="selected" value=2>opt 2</option>
<option value=3>opt 3</option>
<option value=4>opt 4</option>
</select>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-11 16:08:14
Możesz uzyskać jeden z następujących sposobów
$("#list").find('option').filter('[value=2]').text()
$("#list").find('option[value=2]').text()
$("#list").children('option[value=2]').text()
$("#list option[value='2']").text()
$(function(){
console.log($("#list").find('option').filter('[value=2]').text());
console.log($("#list").find('option[value=2]').text());
console.log($("#list").children('option[value=2]').text());
console.log($("#list option[value='2']").text());
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<select id='list'>
<option value='1'>Option A</option>
<option value='2'>Option B</option>
<option value='3'>Option C</option>
</select>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-08 09:57:02