2012-02-24 100 views
0

这看起来很直截了当,但这不起作用。这个想法是在span标签中显示某些内容,具体取决于select语句..它可以隐藏span,但不会显示span。有什么我失踪?显示 - 隐藏取决于选择的选项

这里是select语句,其中的值是1或0

<SELECT NAME="myname" id="showdesc"> 
    <OPTION VALUE="1">Yes</OPTION> 
    <OPTION VALUE="0" >No</OPTION> 
</SELECT> 
<span id="secret">Some content</span> 

下面是查找值在SELECT语句

jQuery(document).on('change', '#showdesc', function() { 
    if(jQuery(this).val() == '1'){ 
     jQuery('span').show('#secret'); 
    }else{ 
     jQuery('span').remove('#secret')}; 
}); 
+0

'remove'从DOM删除元素。 'show'的反义词是'hide'。如有疑问,请先阅读文档:http://api.jquery.com/remove/ – 2012-02-24 03:22:08

回答

2

您使用的是show方法的jQuery不当。

第一个,请选择正确的元素。

然后,应用show/hidejQuery方法:


变化:

if(jQuery(this).val() == '1') 
{ 
    jQuery('span').show('#secret'); 
} 
else 
{ 
    jQuery('span').remove('#secret') 
}; 

到:

if(jQuery(this).val() == '1') 
{ 
    $('#secret').show(); 
} 
else 
{ 
    $('#secret').hide(); 
}; 

jQuery.show([duration] [, easing] [, callback])

+1

这是正确的答案,但人们喜欢解释。我不是使用代码盲代码的粉丝,你知道我的意思吗?你应该谈论每个功能,以及为什么使用你使用的是合适的。 – Purag 2012-02-24 03:26:44

1

要调用卸下摆臂,这会从DOM中删除,这时候你随后要显示的元素,该项目将不可用。

相反,尝试:

jQuery('#secret').show(); 
jQuery('#secret').hide();