2011-03-01 16 views
14

¿Cómo selecciono todas las casillas de selección usando un selector jQuery donde el valor seleccionado es "A1"?jquery selector para obtener todas las listas desplegables seleccionadas con un valor particular seleccionado

Muestra el cuadro de selección:

<select name="accesslevel"> 
<option value="A1">A1 Access</option> 
<option value="A2">A2 Access</option> 
</select> 

Tengo que usar el selector a hacer lo siguiente:

.parent().nextAll('td[id^="A1Access"]').show(); 
.parent().nextAll('td[id^="A2Access"]').hide(); 

¿Alguien puede ayudar?

Respuesta

17

Probar:

$('select option[value="A1"]:selected') 
+0

Esto devolverá la opción en sí, no el cuadro de selección. – Sandwich

+0

@DSKVR buen punto, lo suficientemente simple para '.parent ('seleccionar')' de aquí. O simplemente '.parent()'. –

+0

Solo estaba dando el selector, ahora con él puede hacer lo que quiera a través del selector – Prakash

2

Aquí hay algo así como su especificación original, pero acaba de modificar un poco para trabajar con mis selectores.

$('.container').find('option[value=A1]').filter(':selected').parent('select').show(); 

Y aquí se simplifica:

$('option[value=A1]:selected').parent('select'); 
0

Para simplemente seleccionando la opción en todo el cuerpo html

alert($('option[value=A1]').html()); 

Para select

alert($('select[name=accesslevel]').find('option[value=A1]').html()); 

Pero alerta trabajará con solamente un elemento

Por selecto que tienen

$('option[value=A1]').parent().remove(); 

Se seleccionará a los padres y retirarla.

3
$('select').filter(
function(){ 
    if($(this).val()=="A1") 
     return true; 
    else 
     return false; 
} 
) 

puede agregar su función después de esto como

$('select').filter(
function(){ 
    if($(this).val()=="A1") 
     return true; 
    else 
     return false; 
} 
).parent().nextAll('td[id^="A1Access"]').show(); 
36

Como se mencionó antes, la solución de Prakash es el más cercano, pero se selecciona el valor de la opción en lugar de la seleccionar el cuadro en sí mismo. Esto se puede solucionar con el selector: has.

$('select:has(option[value="A1"]:selected)') 
+0

Creo que esto es mejor que la respuesta de Prakash –

+0

this debería ser la respuesta aceptada! – daveoncode

+0

Este selector tiene un rendimiento increíblemente bajo en IE Edge (y tal vez también en otros). Use esto en su lugar: $ ('option: selected'). Filter ('[value = "A1"]'). Parent(); – bang

0

Hacer una identificación como esto ..

<select name="accesslevel" id="myselector"> 
<option value="A1">A1 Access</option> 
<option value="A2">A2 Access</option> 
</select> 

Ahora seleccione con ese ID.

$("select#myselector option:selected").each(function() 
{ 
    alert($(this).text() + " "); 
}); 
Cuestiones relacionadas