2011-04-01 65 views

回答

64

这里是一个纯JavaScript替代:

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

我会使用'innerText'属性而不是'innerHTML',因为它涉及到XSS更安全。并不是说这里有一个问题,但是如果OP要动态加载链接文本,最好安全一点。 – 2011-04-01 23:25:20

+0

我不知道当我这样做时会发生什么问题,但它不起作用,并且没有项目被添加到div中!任何想法? – 2011-04-01 23:43:47

+0

对不起,我编辑它。我在appendChild中切换了mydiv和aTag。再试一次。这里是一个演示:http://jsfiddle.net/ducondez/mbTnH/ – danniel 2011-04-01 23:52:01

14

我建议您为此使用jQuery,因为它使过程更容易。下面是使用jQuery的一些例子:

$("div#id").append('<a href="' + url + '">' + text + '</a>'); 

如果你需要一个列表不过,作为一个<ul>,你可以这样做:

$("div#id").append('<ul>'); 
var ul = $("div#id > ul"); 

ul.append('<li><a href="' + url + '">' + text + '</a></li>'); 
+2

OP没有说“jQuery”... – kennytm 2011-04-01 23:03:46

+0

greate它的工作对我来说 – 2015-08-22 03:42:10

+0

jquery使用javascript ..我同意使用jquery更容易阅读这里。 – markthewizard1234 2015-12-02 09:48:50

0
var newA = document.createElement('a'); 
    newA.setAttribute('href',"http://lochalhost"); 
    newA.innerHTML = "link text"; 
    document.appendChild(newA); 

谷歌搜索会很容易地发现这一点。

1
<script type="text/javascript" language="javascript"> 
function createDiv() 
{ 
    var divTag = document.createElement("div");    
    divTag.innerHTML = "Div tag created using Javascript DOM dynamically";   
    document.body.appendChild(divTag); 
} 
</script> 
0

一个更多的变化很好地包裹起来,不需要的setAttribute哪里。

有3条线,如果Wetfox可以干掉就不需要了。

​​

感谢您的帮助。