为什么我不能从我的输入中选择值,我做错了什么吗?
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');
发布于 2010-12-01 09:19:07
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/
发布于 2010-12-01 09:15:25
如果希望值使用.val()
method.,则.text()
method将返回所选元素的内部文本。.val()
方法将返回所选元素的值属性。同样值得注意的是,当在select元素上使用val()方法时。您不必在选择器中获取选定的选项,只需对select元素本身调用val()即可获得选定的值。
$('#target').val();
如果所选选项的值属性是您想要的。然后,从您的示例可以看出,这是可行的。
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;
}
发布于 2010-12-01 09:27:56
如果您确实需要文本内容,而不是value属性,那么您可能需要to trim whitespace。
尽管在您的情况下,您实际上不需要进行==
比较。如果您只使用返回的文本来构建选择器,那么您的代码可以大大减少。
// get (and trim) the text content
var txt = $.trim( $('#target option:selected').text() );
$('#' + txt).show(selectedEffect, options, 500, callback );
https://stackoverflow.com/questions/4320376
复制相似问题