2010-01-14 12 views
9

quiero recorrer todos desplegable selecciona con un cierto nombre de clase y añadir un elemento a la misma y sólo estoy luchando con el selector correcta¿Cuál es el selector de jquery correcto para obtener todas las listas desplegables seleccionadas con un cierto nombre de clase?


EDIT: debo estar haciendo algo mal ya que la mayoría de la respuesta aceptada votada no parece funcionar, así que creo que debe haber alguna peculiaridad en mi código. He pegado el código HTML y el código jquery a continuación. hazme saber si esto tiene sentido.


HTML:

<select onfocus="this.enteredText='';" onkeydown="return handleKey();" onkeyup="event.cancelbubble=true;return false;" onkeypress = "return selectItem();" class="componentSelect" id="components0" name="applicationUpdater.dependencies[0].componentName" > 
<option value= 5 >Client</option> 
<option value= 79 >Server</option> 
</select> 

<select onfocus="this.enteredText='';" onkeydown="return handleKey();" onkeyup="event.cancelbubble=true;return false;" onkeypress = "return selectItem();" class="componentSelect" id="components1" name="applicationUpdater.dependencies[0].componentName" > 
<option value= 5 >Client</option> 
<option value= 79 >Server</option> 
</select> 

etc. . .

código jQuery:

$('select.componentSelect').each(function() { 
     var select = $(this); 
     $(select).children('option').each(function() { 
      if ($(this).text() == currentComponentName) { 
       $(this).remove(); 
      } 
     }); 

    }); 

Respuesta

6

Para responder a su pregunta nueva, puede utilizar la siguiente línea para eliminar todos los <option> s que contienen una currentComponentName:

$('select.componentSelect option:contains("' + currentComponentName + '")').remove(); 

Demo

11

Se debe utilizar la .class selector.

// select every <select> element with classname "yourclassname" 
$('select.yourclassname').each(function() { 
    // $(this) now refers to one specific <select> element 
    // we append an option to it, like you asked for 
    $(this).append(
     $('<option value="foo">Bar</option>'); 
    ); 
}); 

Para obtener más información acerca de cómo seleccionar adecuadamente los elementos con jQuery, echar un vistazo a http://docs.jquery.com/Selectors.

1

Es necesario utilizar el selector .className, así:

$('select.className') 

Este selector combina la element selector (a juego todas <select> elementos) con el selector className (a juego todos los elementos que contienen la clase className) para encontrar todos los elementos <select> con esa clase.

+0

¿Por qué este downvoted? – SLaks

1

Dar a este un tiro:

$('select.className').each(function() { 
    var currentSelect = $(this); 
    // ... do your thing ;-) 
}); 
1

Su el código jQuery publicado funciona para mí, siempre que defina currentComponentName como una de las opciones de su selección. La respuesta de Aron Rotteveel está muy cerca, pero la parte de agregación es un poco apagado, intente esto:

$('select.componentSelect').each(function() { 
    $(this).append('<option value="foo">Bar</option>'); 
}); 
Cuestiones relacionadas