【问题标题】:Javascript set AttributeJavascript设置属性
【发布时间】:2015-08-19 01:54:27
【问题描述】:

我有问题。我想用JS设置一些属性。

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 中设置一个参数,但它不起作用。 有没有人知道,这是如何工作的?

【问题讨论】:

  • 请勿使用 setAttribute 添加 onclick!有适当的方法来添加事件。了解 addEventListener

标签: javascript html ajax dom


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您不使用setAttribute 设置事件,而是将函数分配给onclick (div_navi.childNodes[i].onclick = [function]) 属性,或者更好:

    div_navi.childNodes[i].addEventListener('click', getContent);
    
    function getContent(e) {
       console.log(e.target.textContent);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 2018-12-02
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多