我有切換的被點擊的傳說,當一個字段內容的可見性,只留下字段集邊框jQuery的功能(如果有的話)和傳說顯示:崩潰字段集時圖例元素點擊
$('legend.togvis').click(function() {
$(this).siblings().toggle();
return false;
});
,除非該字段集包含的文本節點它的偉大工程。
<fieldset><legend class='togvis'>Click Me</legend>
<p>I toggle when the legend is clicked.</p>
But I'm a recalcitrant text node and refuse to toggle.
</fieldset>
在努力切換文本節點過我嘗試這樣做:
$('legend.togvis').click(function() {
$(this).parent().contents().not('legend').toggle();
return false;
});
它的工作方式相同的第一個函數。而這個:
$('legend.togvis').click(function() {
$(this).parent().contents(":not(legend)").toggle();
return false;
});
這引發錯誤
Message: 'style.display' is null or not an object
Line: 5557
Char: 3
Code: 0
URI: http://code.jquery.com/jquery-1.4.4.js
如何讓一個字段(減去傳說),以被點擊的傳說,當切換的整個內容有什麼想法?
ETA解決方案,非常感謝Eibx
$('legend.togvis').click(function() {
$(this).parent().contents().filter(
function() { return this.nodeType == 3; }).wrap('<span></span>');//wrap any stray text nodes
$(this).siblings().toggle();
});
看來問題是文本節點不/沒有樣式。由於`.toggle()`通過影響節點的CSS來工作,因此它不會影響文本節點。也許我需要將字段集的內容存儲在`.data()`中,然後刪除子項? – dnagirl 2011-01-11 14:38:58