Javascript 如何使用当前节点而不是此节点?

Javascript 如何使用当前节点而不是此节点?,javascript,Javascript,JS 错误是。appendChild不是函数。当用户单击按钮时,我想调用多个函数,所以我调用了第一个函数,我想在其中添加标记,但我不知道如何从addEventListener传递当前节点来附加此子节点。无论您试图附加到什么,都给它一个id属性,然后 var menuBtn = document.getElementsByClassName('btn-block'); var lenOfMenuBtn = menuBtn.length; for (var i = 0; i < lenOfMe

JS


错误是。appendChild不是函数。当用户单击按钮时,我想调用多个函数,所以我调用了第一个函数,我想在其中添加标记,但我不知道如何从addEventListener传递当前节点来附加此子节点。

无论您试图附加到什么,都给它一个id属性,然后

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);
} 

..用元素ID替换myElementsId

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

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

当从addMenu调用时,您需要在addOkFlag中设置它,当处理程序调用它时,它的this设置为元素,例如,使用call:addOkFlag.callthis。我想应用于多个按钮,所以我使用class而不是idi,我可能应该已经阅读了代码。。但您可能应该解释一下,TooinAddMenu可以使用addOkFlagthis;
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);
}