2012-02-24 102 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();