我有這樣的代碼:jQuery的 - 顯示一個div由無ID的鏈接內容/類引用
function showContent() {
...
}
<div id="example">
content
<a href="#" onClick="showContent();return false">Link</a>
</div>
我想,當我點擊鏈接,顯示內容的div,沒有使用id或class作爲參考,但(可能)簡單的這個。
我該怎麼辦?
我有這樣的代碼:jQuery的 - 顯示一個div由無ID的鏈接內容/類引用
function showContent() {
...
}
<div id="example">
content
<a href="#" onClick="showContent();return false">Link</a>
</div>
我想,當我點擊鏈接,顯示內容的div,沒有使用id或class作爲參考,但(可能)簡單的這個。
我該怎麼辦?
那麼,有沒有一個整體很多方面的,但是這是一個辦法:
<div id="example">
<p style="display: none;">content</p>
<a href="#" onClick="showContent(this);return false">Show content above</a>
</div>
function showContent(el) {
$(el).parent().children(':first-child').show();
}
或者,如果你想顯示的所有內(我不認爲:not
真正重要*在這種情況下):
function showContent(el) {
$(el).parent().children(':not(a)').show();
}
*事實上,我會繼續前進,說把它關閉,除非你有沒有一個具體的理由:
function showContent(el) {
$(el).parent().children().show();
}
這取決於您試圖顯示的內容以及是否有任何A標記是display: hidden
並且需要顯示。
這可以去許多方面。
事實上,一個鏈接到其他divs。所以我做了'$(el).parents('#example')。html();':你怎麼看?感謝回答 – markzzz 2011-04-15 10:26:27
如果鏈接是div內,你可以這樣做......
<a href="#" onClick="showContent(this);return false">Link</a>
然後在你的函數...
function showContent(link){
alert($(link).parent().html());
}
然而,這種假設的股利是可見的已所以你不需要「展示」它。
你將必須包裝在<div>
「內容」(或其他塊元素):
<div id="example">
<div style="display: none;">content</div>
<a href="javascript:void(0)" onClick="showContent(this)">Link</a>
</div>
不要爲這些類型的鏈接使用href="#"
,href="javascript:void(0)"
是一個更好的選擇導致更少的問題; void(0)
方法還意味着您的點擊處理程序中不需要return false
以防止瀏覽器嘗試解釋空的片段。
回到我們的定期計劃。然後,你showContent
變得相當簡單:
function showContent(e) {
$(e).prev('div').show();
}
更好的方法是使用jQuery的click處理程序綁定:
<div id="example">
<div style="display: none;">content</div>
<a href="javascript:void(0)">Link</a>
</div>
然後:
$('#example a').click(function() {
$(this).prev('div').show();
});
對於關心促進jQuery事件綁定的人來說+1。 – kapa 2011-04-15 06:57:42
是怎樣的內容隱藏? 「顯示:無」?此外,是否在旁邊的單個節點下的所有內容? – 2011-04-15 01:35:19