texto selectpicker seleccionar quitar mostrar manipular elementos con cambiar agregar jquery

jquery - selectpicker - ¿Cómo seleccionar una opción por su texto?



seleccionar option select jquery (15)

Como se describe en esta respuesta , puede crear fácilmente su propio selector para hasText. Esto le permite encontrar la opción con $(''#test'').find(''option:hastText("B")'').val();

Aquí está el método hasText que agregué:

if( ! $.expr['':''][''hasText''] ) { $.expr['':''][''hasText''] = function( node, index, props ) { var retVal = false; // Verify single text child node with matching text if( node.nodeType == 1 && node.childNodes.length == 1 ) { var childNode = node.childNodes[0]; retVal = childNode.nodeType == 3 && childNode.nodeValue === props[3]; } return retVal; }; }

Necesito comprobar si un <select> tiene una opción cuyo texto es igual a un valor específico.

Por ejemplo, si hay un <option value="123">abc</option> , estaría buscando "abc".

¿Hay un selector para hacer esto?

Estoy buscando algo similar a $(''#select option[value="123"]''); pero para el texto.


Este es el mejor método para seleccionar texto en la lista desplegable.

$("#dropdownid option:contains(your selected text)").attr(''selected'', true);


Este trabajo para mí

$(''#mySelect option:contains('' + value + '')'').attr(''selected'', ''selected'');


Esto funcionó para mí: $("#test").find("option:contains(''abc'')");


Esto funcionará en jQuery 1.6 (note dos puntos antes del paréntesis de apertura), pero falla en las versiones más recientes (1.10 en ese momento).

$(''#mySelect option:[text=abc]")


Esto podría ayudar:

$(''#test'').find(''option[text="B"]'').val();

Demostración - http://jsfiddle.net/nmvf6/1/

Esto le daría la opción con el texto B y no con el texto que contiene B Espero que esto ayude

EDITAR:

Para las versiones recientes de jQuery, lo anterior no funciona. Como lo comentó Quandary continuación, esto es lo que funciona para jQuery 1.9.1:

$(''#test option'').filter(function () { return $(this).html() == "B"; }).val();

Fiddle actualizado


Esto también funcionará.

$ (''# test''). find ("select option: contains (''B'')"). filter (": selected");


Intenté algunas de estas cosas hasta que obtuve una para trabajar tanto en Firefox como en IE. Esto es lo que se me ocurrió.

$("#my-Select").val($("#my-Select" + " option").filter(function() { return this.text == myText }).val());

otra forma de escribirlo en un fasion más legible:

var valofText = $("#my-Select" + " option").filter(function() { return this.text == myText }).val(); $(ElementID).val(valofText);

Pseudocódigo:

$("#my-Select").val( getValOfText( myText ) );


Me enfrenté al mismo problema a continuación es el código de trabajo:

$("#test option").filter(function() { return $(this).text() ==''Ford''; }).prop("selected", true);

Demostración: http://jsfiddle.net/YRBrp/83/


Ninguna de las sugerencias anteriores funcionó para mí en jQuery 1.7.2 porque estoy tratando de establecer el índice seleccionado de la lista en función del valor de un cuadro de texto, y algunos valores de texto están contenidos en varias opciones. Terminé usando lo siguiente:

$(''#mySelect option:contains('' + value + '')'').each(function(){ if ($(this).text() == value) { $(this).attr(''selected'', ''selected''); return false; } return true; });


O itera a través de las opciones, o coloca el mismo texto dentro de otro atributo de la opción y selecciona con eso.


Puede usar el selector :contains() para seleccionar elementos que contienen texto específico.
Por ejemplo:

$(''#mySelect option:contains(abc)'')

Para verificar si un elemento <select> tiene dicha opción, use el método .has() :

if (mySelect.has(''option:contains(abc)'').length)

Para encontrar todos los <select> s que contienen dicha opción, use el selector : :has() :

$(''select:has(option:contains(abc))'')


Use la siguiente

$(''#select option:contains(ABC)'').val();


Esto funciona para mí

var options = $(dropdown).find(''option''); var targetOption = $(options).filter( function () { return $(this).html() == value; }); console.log($(targetOption).val());

Gracias por todas las publicaciones.


Para jquery versión 1.10.2 a continuación funcionó para mí

var selectedText="YourMatchText"; $(''#YourDropdownId option'').map(function () { if ($(this).text() == selectedText) return this; }).attr(''selected'', ''selected''); });