2012-02-08 12 views
5

en mi última pregunta jQuery getting values from multiple selects togetherjQuery Seleccionar lista, valor de texto seleccionado en lugar del edificio de valor

tengo la lista de selección como:

<select name="access" class="change" id="staff_off" runat="server"> 
       <option value="8192">Off</option> 
       <option value="8192">On</option> 
    </select> 

Y Básicamente quiero sumar o restar el valor de la opciones si está desactivado, resta si está en agregarlo. Va a ser almacenado en una cookie (que utiliza bit a bit)

El jQuery que tengo es:

<script> 

     $(document).ready(function(){ 
      var currentAccess = $.cookie("access"); 
     }) 

     $("select").change(function() { 
      var currentText = $(this).text() 
      var value = $(this).val() 

       $.cookie("access", value, { expires: 24 }); 

       alert(currentText); 

       alert($.cookie("access")); 

      }) 

    </script> 

Voy a hacer la adición de la función de cambio. Lo que no puedo hacer ejercicio es cómo conseguir que el texto de la selección para hacer una sentencia if (así que si es sí, sume el valor, si es no, reste el valor)

Tom

Respuesta

8

Si usted está buscando el texto interior de la <option> elemento seleccionado, puede utilizar el selector :selected a su altura, a continuación, llamar al método text():

var currentText = $(this).find(":selected").text(); 

O, alternativamente:

var currentText = $(":selected", this).text(); 
+0

Esto es exactamente lo que estaba buscando. ¡Gracias! – TMB87

6

Para obtener el texto del elemento seleccionado:

var value = $("#staff_off :selected").text(); 

también me gustaría sugerir (si está usando HTML5) que utiliza el atributo data-x para almacenar la bandera si desea añadir o restar el valor sería más semántica. De esta manera:

<select name="access" class="change" id="staff_off" runat="server"> 
    <option value="8192" data-factor="-1">Off</option> 
    <option value="8192" data-factor="1">On</option> 
</select> 

Luego de obtener su valor final que se aplican al total que simplemente multiplica el value por el atributo data-factor.

+0

Necesita un espacio entre '# staff_off' y': selected', o terminará haciendo coincidir el '