0

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

我需要比较其中一个是否具有类任务值,我不明白为什么我有错误!!!需要帮助抱歉英语不好链接到 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")
        }
    }

使用完整的 css/Html 和 Javascript 链接 UpDate

4

1 回答 1

3

这成为可能,因为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")
        }
    }
于 2016-05-08T16:12:59.390 回答