2011-10-13 60 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中包含块级标记,请使用设置为显示:块的跨度。