2012-02-08 56 views
5

建筑jQuery getting values from multiple selects togetherjQuery的选择列表中,选择的文本价值,而不是我的最后一个问题的价值

我有选择列表,如:

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

我基本上要增加或减少的值选项,如果它关闭,减去它是否加上它。这将被存储在cookie中(它使用按位)

jQuery的我已经是:

<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> 

我会做的改变功能的增加。我想不通的事情是如何让选择的文本做一个if语句(所以如果是肯定的,添加值,如果没有,减去值)

汤姆

回答

8

如果你正在寻找的选择<option>元素的内部文本,您可以使用:selected选择与之相匹配的,则调用text()方法:

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

,或者:

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

这正是我所期待的。谢谢! – TMB87 2012-02-08 13:41:14

6

要获得所选项目的文本:

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

我也建议(如果你使用HTML5),使用data-x属性存储标志是否增加或减少的价值将更多的语义。就像这样:

<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> 

然后让你的终值适用于总您只需通过data-factor属性乘以value

+0

您需要'#staff_off'和':selected'之间的空格,否则您将最终匹配'