2011-10-13 122 views
0

我有一段文字,我想保持隱藏,直到用戶要求查看它。這是我的HTML:更改JavaScript中的innerHTML刪除鏈接

<a href="javascript:toggleDisplay('01');"> 
     <div id="title01"> 
      Show details 
     </div> 
    </a> 
    <div id="hide01" class="details"> 
     Description: 
    </div> 

現在,塊隱藏和顯示的作品就好了,但是當我改變的innerHTML的DIV title01,它不再保持一個鏈接。

這裏是我的JS:

var div = document.getElementById('hide'+div_id); 
    var title = document.getElementById('title'+div_id); 

    if (div.style.display === 'block') 
    { 
     div.style.display = 'none'; 
    } 
    else 
    { 
     div.style.display = 'block';  
     title.innerHTML = 'Hide'; 
    } 

因爲我改變對DIV的innerHTML id爲title01只是,我不明白爲什麼它不留一個鏈接。我能做些什麼來解決這個問題?

+1

似乎工作:http://jsfiddle.net/SwyRP/(在Chrome中)。雖然我不認爲在'a'(內聯元素中的塊元素)中有'div'是有效的。試着用'span'代替,一些瀏覽器可能會糾正這個問題並將'div'移到'a'元素之外。 –

+0

尼斯鏈接。這會很有用。我很驚訝,因爲它不適用於Chrome。它按我的預期更改文字,但新文字不再保留鏈接。我會用'span'來嘗試。 – xbonez

+0

也檢入IE 9,並且文本不保留鏈接。 – xbonez

回答

0

好吧,我被徹底消除了<div>並給予<a>標籤的ID固定它。

所以,我的新的HTML看起來像:

<a id = "title01" href="javascript:toggleDisplay('01');"> 
     Show details 
</a> 
0

使用jQuery文本功能更改內容

$('#title01').text("data to display"); 
+0

我寧可不使用jQuery來完成這個小任務。 – xbonez

0

爲了記錄在案,問題是一個內部的股利。這是非法的,行爲會很奇怪。如果您必須在a中包含塊級標記,請使用設置爲顯示:塊的跨度。