首页 > 解决方案 > 尝试检索页面上元素的值时未定义

问题描述

我对 JavaScript 很陌生,无法理解为什么undefined在尝试执行控制台日志时返回下面的代码。

casper.getVersionOfDocs = function getVersionOfDocs() {
    casper.then(function(){
        var listItems = this.evaluate(function () {
            var nodes = document.querySelectorAll('#cp-search-facets > div > div.panel-pane.pane-search-facet-product-version > div > div > ul > li');
            return [].map.call(nodes, function(node) {
                return {
                    text: node.nodeValue
                };
            });
        });
        for(index = 0; index < listItems.length; index++){
            console.log(listItems[index]["value"]);
        };
    });
};

输出:

undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined

在此处输入图像描述

标签: javascriptcasperjs

解决方案


在您的代码中,您正在创建一个具有text属性的对象。但是随后您尝试读取属性“值”。

用它改变你的for循环,它应该没问题。

    for(index = 0; index < listItems.length; index++){
        console.log(listItems[index]["text"]);
    };

推荐阅读