Pregunta jQuery recibe texto de etiqueta de opción específico


Muy bien, di que tengo esto:

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

¿Cómo se vería el selector si quisiera obtener la "Opción B" cuando tengo el valor '2'?

Tenga en cuenta que esto no es preguntar cómo obtener el seleccionado valor de texto, pero cualquiera de ellos, ya sea seleccionado o no, según el atributo de valor. Lo intenté:

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

Pero no está funcionando.


1137
2017-10-13 04:06


origen


Respuestas:


Está buscando un elemento con id list que tiene una propiedad value igual a 2. Lo que quieres es el option hijo de la list.

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

1051
2017-10-13 04:08



Si desea obtener la opción con un valor de 2, use

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

Si desea obtener la opción que esté seleccionada actualmente, use

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

1238
2018-05-15 15:52



Esto funcionó perfectamente para mí, estaba buscando una forma de enviar dos valores diferentes con las opciones generadas por MySQL, y el siguiente es genérico y dinámico:

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

Como se menciona en uno de los comentarios. Con esto pude crear una función dinámica que funciona con todos mis cuadros de selección y quiero obtener ambos valores, el valor de la opción y el texto.

Hace unos días noté que al actualizar el jQuery de 1.6 a 1.9 del sitio utilicé este código, esto dejó de funcionar ... probablemente era un conflicto con otro código ... de todos modos, la solución era eliminar la opción del llamada a find ():

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

Esa fue mi solución ... úsala solo si tienes algún problema después de actualizar tu jQuery.


116
2017-07-29 18:55



Basado en el HTML original publicado por Paolo, se me ocurrió lo siguiente.

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

Se ha probado que funciona en Internet Explorer y Firefox.


107
2018-05-02 12:25



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

para el valor seleccionado múltiple en el #list elemento.


36
2018-06-04 14:30



  1. Si solo hay una etiqueta de selección en la página, puede especificar seleccionar dentro de id 'list'

    jQuery("select option[value=2]").text();
    
  2. Para obtener el texto seleccionado

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

36
2018-06-13 03:45



Pruebe lo siguiente:

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

La razón por la que su fragmento original no funcionaba es porque su OPTION las etiquetas son hijos de tu SELECT etiqueta, que tiene el id  list.


23
2017-10-13 04:08



Esta es una pregunta antigua que no se ha actualizado en algún momento, la forma correcta de hacerlo ahora sería usar

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

Espero que esto ayude :-)


19
2017-07-02 23:15



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

17
2018-04-03 11:21



Yo quería obtener la etiqueta seleccionada. Esto funcionó para mí en jQuery 1.5.1.

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

16
2018-03-01 05:44



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

deja un espacio después del selector de id.


13
2018-05-31 06:38