jQuery选择列表,选择文本值而不是值

时间:2012-02-08 13:29:40

标签: javascript jquery asp.net

基于我的上一个问题jQuery getting values from multiple selects together

我有选择列表,如:

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

我会在更改功能中添加。我无法解决的问题是如何获取select的文本来执行if语句(如果是,则添加值,如果不是,则减去该值)

汤姆

3 个答案:

答案 0 :(得分:9)

如果您要查找所选<option>元素的内部文字,可以使用:selected选择器进行匹配,然后调用text()方法:

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

或者,或者:

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

答案 1 :(得分:7)

获取所选项目的文本:

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>

然后,要将最终值应用于总数,您只需将value乘以data-factor属性即可。

答案 2 :(得分:0)

您可以使用此$("#staff_off").find("option:selected").html();