2012-06-12 108 views
0

有沒有什麼方法可以在HTML元素中隱藏文本而不是元素本身,使用JavaScript?所以,如果有人有用JS(而不是元素本身)隱藏文本元素

<span style="border: 1px solid green">Hello world!</span> 

怎麼能隱藏「你好世界!」但不是邊界?如果還有簡化的jQuery解決方案,您是否也可以包含它?

+0

加入'顏色:透明;'或'visibility:hidden的;'的風格都不行? – Scott

+0

定義「隱藏」。它應該隱形但仍佔據這個空間嗎?或者頁面應該顯示爲文本不在那裏?它應該隱藏在屏幕閱讀器,搜索引擎等?在CSS禁用時它是否應該顯示爲普通文本?解釋「隱藏」的目的可能有助於解決正確的問題。 –

+0

隱藏在向文本添加display:none樣式,但不添加到元素本身。對不起,誤解:D – Bluefire

回答

1

是的。它被稱爲.wrapInner()

$("div").wrapInner('<span class="hide" />'); 

DEMO:http://jsfiddle.net/9KzgJ/

+0

這是一個JS預定義的方法,或者它是一個jQuery定義的方法嗎? – Bluefire

+1

這顯然是一個jQuery函數。使用$('div')而不僅僅是document.getElementById() – korko

0

你可以只使用一個嵌套的跨度和隱藏...

<span style="border: 1px solid green"><span id="text1">Hello world!</span></span> 
+0

是的,隱藏使用'visibility:hidden'(使用'display:none'作爲內聯元素中的內部元素,例如跨度將導致父級收縮爲零寬度 – steveax

+0

不,但我意思是沒有使用另一個元素 – Bluefire

+0

本質上,wrapInner jQuery函數是做同樣的事情... –

1

$(<mydiv>).css('color', $(<mydiv>).css('background-color'))是不會改變DOM的唯一解決方案。

如果接受改變,你可以使用像$(<mydiv>).html($('<div>'+$(<mydiv>).html())+'</div>').css({visibility: 'hidden'}))

或者類似的東西。

希望這會有所幫助。

0

簡答題號碼。

可悲的是,無需更換元素都在一起,隱藏要素,或改變元素文本爲空,沒有辦法只有躲的文字...

但是,你可以使用JavaScript來追加一個相同的元素..然後隱藏你想要的元素...

但是,除了這個選項,戈登貝爾的答案可能是你最好的選擇...

1

如果它是一個塊級元素,你可以使用text-indent:-9999px;