jQuery if else和select tag中的选定值

时间:2010-12-01 01:11:54

标签: jquery

为什么我不能从输入中选择值,我做错了什么?

 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');

4 个答案:

答案 0 :(得分: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');

请在此处查看http://api.jquery.com/val/

答案 1 :(得分:2)

如果您希望值使用.val() method. .text() method返回所选元素的内部文本。 .val()方法将返回所选元素的value属性。还要注意的是,在select元素上使用val()方法时。您不必在选择器中获取所选选项,只需在select元素本身上调用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;
}

答案 2 :(得分:0)

如果你真的想要文本内容而不是value属性,那么你可能需要to trim whitespace

虽然在您的情况下,您并不需要==比较。如果您只是使用您返回的文本来构建选择器,那么您的代码可以大大减少。

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

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

答案 3 :(得分:0)

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

对每个值都这样,根据数据更改值。