2012-08-10 58 views
0

我想在功能區上添加超鏈接。我能夠將超鏈接添加到現有的div。由於功能區正在爲我做的每一個動作刷新,超鏈接正在增加。如何在加載時清除div元素

我該如何清除div,並只提供一個鏈接。

我使用以下代碼:

var mydiv = document.getElementById("myDiv"); 
var aTag = document.createElement('a'); 
aTag.setAttribute('href',"yourlink.htm"); 
aTag.innerHTML = "link text"; 
mydiv.appendChild(aTag); 
+5

將最後一行替換爲tehse t wo行可能是? mydiv.innerHTML =「」; mydiv.appendChild(ATAG); – 2012-08-10 05:23:14

+0

+1 @ SenthilKumar – 2012-08-10 05:24:03

回答

0

試試這個

var aTag = "<a href='yourlink.htm' > </a>"; 
document.getElementById("myDiv").innerHtml = aTag ; 
0

假設色帶「myDiv」

mydiv.innerHTML = "" 

之前

mydiv.appendChild(aTag); 
2

jQuery有所述empty()功能。如果您只使用純JS,則在添加<a>標記之前,始終可以添加行mydiv.innerhtml = ""

+0

OP不想要jQuery解決方案.. – 2012-08-10 05:30:39

+0

是的,這就是爲什麼我提供純JavaScript的一個。 – 2012-08-10 05:39:09

1

這可能會爲你工作:

var mydiv = document.getElementById("myDiv"); 
var aTag = document.createElement('a'); 
aTag.setAttribute('href',"yourlink.htm"); 
aTag.innerHTML = "link text"; 
mydiv.innerHTML=""; 
mydiv.innerHTML=aTag; 
+0

謝謝你所有的工作。 – pavan 2012-08-10 06:01:44

+0

如何在單擊超鏈接時調用同一個js文件中的函數。 – pavan 2012-08-10 07:19:14

0
var mydiv = document.getElementById("myDiv"); 
var aTag = document.createElement('a'); 

aTag.setAttribute('href',"yourlink.htm"); 
aTag.innerHTML = "link text"; 

if(mydiv.firstChild){ 
    mydiv.replaceChild(aTag, mydiv.firstChild); 
}else{ 
    mydiv.appendChild(aTag); 
} 
0

這種方法並不只刪除子(和其他後裔)元素,而且匹配的元素集合內的任何文字。這是因爲,根據DOM規範,元素內的任何文本字符串都被視爲該元素的子節點。考慮下面的HTML:

<div class="container"> 
    <div class="hello">Hello</div> 
    <div class="goodbye">Goodbye</div> 
</div> 

我們就可以針對去除任何元素:

$('.hello').empty(); 

這將導致與文本Hello一個DOM結構中刪除:

<div class="container"> 
    <div class="hello"></div> 
    <div class="goodbye">Goodbye</div> 
</div>