jQuery if else语句和从选择标记中选定的值

3

为什么我无法获取我的输入框中选择的值,我做错了什么吗?

 if($('#target option:selected').text() == "add")
                    $("#add").show(selectedEffect, options, 500, callback );
                 else if ($('#target option:selected').text() == "exit")
                    $("#exit").show(selectedEffect, options, 500, callback );
                 else if ($('#target option:selected').text() == "refuse")
                    $("#refuse").show(selectedEffect, options, 500, callback );
                 else
                    alert('test');

1
可能需要查看您的HTML代码。顺便说一下,对于<option>元素,.text()将获取标签,而对于<select>元素,.val()将获取当前选择的选项值。 - Orbling
4个回答

6
var target = $('#target option:selected').val();

if(target == "add")
    $("#add").show(selectedEffect, options, 500, callback );
else if ($('#target option:selected').text() == "exit")
    $("#exit").show(selectedEffect, options, 500, callback );
else if ($('#target option:selected').text() == "refuse")
    $("#refuse").show(selectedEffect, options, 500, callback );
else
alert('test');

Check it out here http://api.jquery.com/val/


2
<script>  
$(document).ready(function(){
    $('#colorselector').on('change', function() {
      if ( this.value == 'red')
      {
        $("#divid").show();
      }
      else
      {
        $("#divid").hide();
      }
    });
});
</script>

针对每个值都按照这样做,根据你的数据更改数值。


2
如果你想要获取值,使用.val() 方法.text() 方法返回所选元素的内部文本。 .val() 方法将返回所选元素的值属性。 值得注意的是,在选择元素上使用 val() 方法时,你不必在选择器中获取所选选项,只需在选择元素本身上调用 val() 即可获取所选值。
$('#target').val();

如果您想要选定选项的value属性,那么根据您的例子,这将起作用。
switch ($('#target').val()) {
  case "add":
    $("#add").show(selectedEffect, options, 500, callback );
    break;
  case "exit":
    $("#exit").show(selectedEffect, options, 500, callback );
    break;
  case "refuse":
    $("#refuse").show(selectedEffect, options, 500, callback );
    break;
  default
    alert('test');
    break;
}

0

如果你真的想要文本内容而不是值属性,那么可能需要修剪空格

虽然在你的情况下,你并不真正需要==比较。如果你只使用返回的文本来构建选择器,你的代码可以大大简化。

   // get (and trim) the text content
var txt = $.trim( $('#target option:selected').text() );

$('#' + txt).show(selectedEffect, options, 500, callback );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接