js遍历点击的元素子节点

时间:2016-05-08 16:05:02

标签: javascript loops child-nodes

js遍历点击的元素子节点 我有错误: 未捕获的TypeError:无法读取属性'包含'未定义的

我需要比较其中一个是否具有类任务值 我不明白为什么我有错误! 需要帮助对不起英语不好 链接到js小提琴代码

Link to code on js fiddle

function docClick(e) {
    var target = e.target;
    console.log(this.childNodes.length)

    for(var i = 0; i < this.childNodes.length; i++){
        console.log(this.childNodes[i])

        if(this.childNodes[i].classList.contains("task-value")){
            console.log("if")
        }else{
            console.log("else")
        }
    }

Link UpDate whit full css/Html and Javascript

1 个答案:

答案 0 :(得分:2)

这是可能的,因为this.childNodes不仅包含HTML元素,还包含text个节点。文本节点不能有类,所以它们永远不会有属性classList 您需要使用属性children来准确获取html elements

function docClick(e) {
    var target = e.target;
    console.log(this.children.length)

    for(var i = 0; i < this.children.length; i++){
        console.log(this.children[i])

        if(this.children[i].classList.contains("task-value")){
            console.log("if")
        }else{
            console.log("else")
        }
    }