jQuery:从选择下拉列表中显示一个元素,在选择其他选项时隐藏它
我试过环顾四周,也有类似的问题,但我的方法更简单,但是,我在这些论坛中找不到解决方案。
在学习jQuery的同时,我试图在选择选择下拉列表中的项目/选项时显示DIV,并在选择下拉列表中的任何其他选项时隐藏相同的DIV。
选择HTML:
—Select— Source 1 Source 2 Other
DIV我需要在选择“其他”时显示:
Other source here...
如果选择了选择菜单中的任何其他选项,则不应显示上述DIV。
我试过这个jQuery,但当然它不能正常工作:
$(function() { $.viewMap = { 'sother' : $('#specify-source') }; $('#source').change(function() { // hide all $.each($.viewMap, function() { this.hide(); }); // show current $.viewMap[$(this).val()].show(); }); });
你能给我的任何帮助,我都非常感激。
谢谢,
我看到你试图用视图做什么。 简化它:
$('#source').change(function() { ($(this).val() == "sother") ? $('#specify-source').show() : $('#specify-source').hide(); });
simplier:
$(function() { $("#specify-source").hide(); $("#source").change(function(){ if ($(this).val() == "sother") $("#specify-source").show(); else $("#specify-source").hide(); }); });
忽略您的视图,您可以:
$("#source").change(function () { var foo = false; $("#source option:selected").each(function () { if ($(this).val() == "sother") foo = true; }); if (foo) $('#specify-source').show(); else $('#specify-source').hide(); }).change();
你想让我包括如何使用你的所有代码吗?
其他已发布的方法也可以使用,但不能使用但不会处理带有@ multiple =“multiple”的选择
我忘了提到我选择“其他”选项时需要显示的DIV,需要在进入页面时隐藏,所以我添加了.hide(); 属性。
我还添加了一个slideDown(’fast’); 帮助实现可用性。
这是我最后的代码感谢Amit的帮助:
$('#specify-source').hide(); $('#source').change(function() { ($(this).val() == "sother") ? $('#specify-source').slideDown('fast') : $('#specify-source').hide(); });
这是隐藏元素的最简单方法:
$('.target').hide();
这是show和hide jquery的一个例子:
Hello 3, how are you?