2015-06-04 54 views
0

我遇到问题了。我想用JS设置一些属性。Javascript set属性

for(i=0;i<div_navi.childNodes.length;i++){      
    if(div_navi.childNodes[i].nodeName =="SPAN"){ 
     div_navi.childNodes[i].setAttribute("onclick","getContent(div_navi.childNodes[i].textContent); 
     div_navi.childNodes[i].style.cursor ="pointer"; 
    } 
    if(div_navi.childNodes[i].nodeName =="A") 
     div_navi.childNodes[i].setAttribute("href",div_navi.childNodes[i].textContent); 
    } 
} 

我想在getContent中设置一个参数,但它不起作用。有没有人有一个想法,这可以如何工作?

+0

切勿使用的setAttribute来的onclick补充!有适当的方法来添加事件。了解有关addEventListener的信息 – epascarello

回答

1

正确使用引号,您应该正确地绑定事件,您可以直接设置href属性。

div_navi.childNodes[i].onclick = function(){ 
    getContent(this.textContent) 
}; 
div_navi.childNodes[i].href = div_navi.childNodes[i].textContent; 
0

你不setAttribute设置一个事件,你会分配一个功能到onclickdiv_navi.childNodes[i].onclick = [function])财产,或者更好:

div_navi.childNodes[i].addEventListener('click', getContent); 

function getContent(e) { 
    console.log(e.target.textContent); 
}