js循环遍历单击的元素子节点



js循环通过单击的元素子节点我有错误:未捕获的类型错误:无法读取未定义的属性"contains"

我需要比较其中一个是否具有类任务值我不明白为什么我会出错!!!需要帮助抱歉英语不好链接到js fiddle whith代码

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

链接UpDate whit full-css/Html和Javascript

这之所以成为可能,是因为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")
        }
    }

最新更新