如何将event.target与选择器进行比较

时间:2014-03-19 23:31:06

标签: javascript dom delegation

在我的函数中,我正在使用节点类型node,并将onclick附加到该类型文档中的每个节点。

然后我想查看点击的元素并“冒泡”,即向selector选择的节点上方的节点添加效果。

问题是,我的函数所使用的选择器可以是类,标签,id等......

那么我将target进行比较(在周围*的部分中)

function myFunc(node, event, selector){

    var elements = document.querySelectorAll(node);

    for (var i = 0; i < elements.length; i++){
         elements[i].onclick = function(event){
            var target = event.target;
             while (target != node){
                 **if (target == selector) **
                        applyEffects(target);
             }
             target = target.parentNode;
        };   
    }

}

另外 - 我不允许使用JQuery。 (这是家庭作业的一部分,但我的问题与它没有直接关系)

1 个答案:

答案 0 :(得分:0)

要检查element是否匹配target(在您的情况下为selector):

Array.prototype.indexOf.call(document.querySelectorAll(selector), element) !== -1