Javascript document.setAttribute似乎不起作用

Javascript document.setAttribute似乎不起作用,javascript,Javascript,我编写了一个简单的javascript函数,创建了一个DOM对象(在本例中是一个标记),然后在html页面中调用它,但它似乎不起作用。有什么想法吗 function create_link() { var link = document.createElement("a"); link.setAttribute('href', 'the_link.html'); link.setAttribute('name', 'click on link'); documen

我编写了一个简单的javascript函数,创建了一个DOM对象(在本例中是一个标记),然后在html页面中调用它,但它似乎不起作用。有什么想法吗

function create_link() {
    var link = document.createElement("a");
    link.setAttribute('href', 'the_link.html');
    link.setAttribute('name', 'click on link');
    document.childNodes[0].childNodes[1].appendChild(link);
}

文档.childNodes[0].childNodes[1]
可能存在此问题。建议您改用
document.getElementById(id)
,特别是因为这更能抵抗以后可能对HTML结构进行的更改


通常,避免使用
childNodes
导航到DOM的特定部分。

createElement和setAttribute调用正常,是否确定定义了
document.childNodes[0]。childNodes[1]


要进行测试,可以执行以下操作:
document.body.appendChild(link),应该可以工作。

通过遍历,您想要完成什么?您可以通过
document.body
访问
body
标记。好的,我没有。我可以直接访问body。我刚试过,document.body也不起作用。您还可以通过
document.documentElement
访问文档本身,通过
document.head
访问
head
标记。看看迈克·刘易斯的答案。这是您正在寻找的。使用
childNodes
作为文本节点(包括空格)、doctype节点等进行遍历是不可靠的,可能会导致您的方法中断。