我如何使用当前节点而不是这个?

时间:2016-09-08 12:24:12

标签: javascript

JS

var menuBtn = document.getElementsByClassName('btn-block');
var lenOfMenuBtn = menuBtn.length;
for (var i = 0; i < lenOfMenuBtn; i++) {
    menuBtn[i].addEventListener('click',addMenu,false);
}

function addMenu() {
    addOkFlag();
    //addToCart();
    //removeOkFlag();
}

function addOkFlag() {
    var elmnt = document.createElement('i');
    elmnt.setAttribute('class','glyphicon glyphicon-ok');
    this.appendChild(elmnt);
} 

错误是&#34; this.appendChild不是函数&#34;。我想在用户单击按钮时调用多个函数,因此我调用第一个函数,我想在其中添加<i>标记,但我不知道如何从addEventListener传递当前节点以附加此子节点。

2 个答案:

答案 0 :(得分:0)

您可以将点击的元素传递给函数

var menuBtn = document.getElementsByClassName('btn-block') ;
var lenOfMenuBtn = menuBtn.length ;
for (var i = 0; i < lenOfMenuBtn; i++) {
    menuBtn[i].addEventListener('click',addMenu,false) ;
}

function addMenu(e) {
    addOkFlag(e.target) ;
    // or addOkFlag(this);

}

function addOkFlag(el) {
    var elmnt = document.createElement('i');
    elmnt.setAttribute('class','glyphicon glyphicon-ok');
    el.appendChild(elmnt);
} 

答案 1 :(得分:-1)

无论你想要追加什么,给它一个id属性,然后......

document.getElementsByClassName('myElementsId').appendChild(elmnt);

..将“myElementsId”替换为您的元素ID