2014-07-01 116 views
1

我正在尋找隱藏子元素的父級,但不隱藏子元素本身。jQuery隱藏父級但不是子級

<div class="bordered"> 
    <div class"banner-outer"> 
     <span class="text">My text content</span> 
    </div> 
</div> 

當我做這樣的事情:

$(".bordered").hide(); 
$(".text").show(); 

內最元素.text保持隱藏,因爲父母的。有沒有辦法只顯示子元素?

+0

如果這是一個樣式問題,只需使用CSS類來切換/刪除/添加樣式 – sailingthoms

+0

這是不可能的。也許重新考慮元素的內部結構。 –

+0

不使用jquery的'hide'(它只是將'display:none'添加到元素的樣式中)。如果你隱藏父元素,父元素將被隱藏。由於父元素*包含*子元素,所以子元素也將被隱藏。子元素是父元素的一部分。 – sgroves

回答

1

在一個字,號

但是,你可以做一些像移動「的.text」跨度是你的「.bordered」 DIV的孩子。

$span=$(".text").clone(); 
$(".text").remove(); 
$(".bordered").append($span); 

我也建議使用ID的而不是類,如果你要操縱這樣的DOM。

+0

謝謝,我認爲這是我正在尋找的解決方法。我不確定是否有可能這樣做,這回答了我的問題。 – Nostronus

1

按照定義,如果你隱藏父div,childs也是隱藏的。

您必須以不同的方式繼續。

,如果你只是想取消「加邊」類的效果,你可以刪除類這樣的:

$(".bordered").removeClass("bordered"); 

你也可以做孩子的div的副本,並將其追加到文件。

+0

如何刪除類解決問題? – LcSalazar

+0

如果只是一個造型問題,這是一個可能的解決方案。 –

+0

但是,如果他刪除課程,他不會隱瞞父母...這不是問題的關鍵... – LcSalazar