Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “无法读取未定义的属性'length'”-尝试获取类名的子级_Javascript - Fatal编程技术网

Javascript “无法读取未定义的属性'length'”-尝试获取类名的子级

Javascript “无法读取未定义的属性'length'”-尝试获取类名的子级,javascript,Javascript,我正在尝试获取一个类名的所有子类。选择选项,然后应用onclick属性。当我运行javascript时,出现以下错误: 未捕获的TypeError:无法读取未定义的属性“length” 以下是我的javascript: function loadQuickAction() { setTimeout(function() { var x = document.getElementsByClassName("select-options").childNodes;

我正在尝试获取一个类名的所有子类。选择选项,然后应用onclick属性。当我运行javascript时,出现以下错误:

未捕获的TypeError:无法读取未定义的属性“length”

以下是我的javascript:

function loadQuickAction() {
    setTimeout(function() {
        var x = document.getElementsByClassName("select-options").childNodes;
        for(i=0; x<x.length; i++) {
            x[i].setAttribute("onclick", "subQuickAction();");
        }
    }, 1000);
}

有什么想法吗?

您需要迭代从getElementsByClassName返回的集合。此外,添加单击处理程序最好是通过指定onclick属性而不是属性来完成

function loadQuickAction() {
    setTimeout(function() {
        var options = document.getElementsByClassName("select-options");
        for (var i = 0; i < options.length; i++) {
            var children = options[i].childNodes;
            for (var j = 0; j < children.length; j++) {
                children[j].onclick = subQuickAction;
            }
        }
    }, 1000);
}

您需要迭代从getElementsByClassName返回的集合。此外,添加单击处理程序最好是通过指定onclick属性而不是属性来完成

function loadQuickAction() {
    setTimeout(function() {
        var options = document.getElementsByClassName("select-options");
        for (var i = 0; i < options.length; i++) {
            var children = options[i].childNodes;
            for (var j = 0; j < children.length; j++) {
                children[j].onclick = subQuickAction;
            }
        }
    }, 1000);
}

返回没有childNodes属性的HTMLCollection。HTMLCollection的元素具有childNodes属性。返回没有childNodes属性的HTMLCollection。HTMLCollection的元素有一个childNodes属性。谢谢!成功了:5分钟过后,我会将你的答案标记为已接受的答案:谢谢!成功了:5分钟过后,我会将你的答案标记为接受答案: