Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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 querySelectorAll()打印所有节点的文本内容_Javascript_Html_Css Selectors_Phantomjs - Fatal编程技术网

Javascript querySelectorAll()打印所有节点的文本内容

Javascript querySelectorAll()打印所有节点的文本内容,javascript,html,css-selectors,phantomjs,Javascript,Html,Css Selectors,Phantomjs,这是我用来从网页获取所有文本内容的代码。但它不起作用,我不知道我做错了什么 <tr style="color:#000000" class="odd"> <td style="padding:5px 5px 5px 10px" align="center"><input type="checkbox" name="cards[]" id="card_278002" value="278002"></td> <td align="cen

这是我用来从网页获取所有文本内容的代码。但它不起作用,我不知道我做错了什么

<tr style="color:#000000" class="odd">
  <td style="padding:5px 5px 5px 10px" align="center"><input type="checkbox" name="cards[]" id="card_278002" value="278002"></td>
  <td align="center">411756</td>
  <td align="center">Sherrie</td>
  <td align="center">89852</td>
</tr>

输出:
null
。。我做错了什么?

你不能像那样使用
文档。queryselect或all
。它返回一个
节点列表
。您必须自己从每个节点获取
textContent

更长的路:

function get42() {
    var tds = document.querySelectorAll('td'),
        result = [];
    for (var i = 0; i < tds.length; i++) {
        result.push(tds[i].textContent);
    }
    return result;
}

非常感谢您!然而,这张地图让我的大脑很难理解。“你必须自己从每个节点获取文本内容”-或者只需获取父元素的
textContent
。(当然,你可能需要去除/规范化空白。)@victory没问题。这个
map
示例有点复杂,因为它借用了
Array
中的map函数(因为
NodeList
没有map函数)。用长一点的方法没什么错。为了更容易理解<代码> MAP>代码>示例,考虑一个数组(它有内置的映射):<代码> [1,2,3] .map(函数(num){返回num * 2 });
返回
[2,4,6]
…基本上是将函数映射到数组的每个元素。这个例子就是把这个值乘以2。希望有帮助!
function get42() {
    var tds = document.querySelectorAll('td'),
        result = [];
    for (var i = 0; i < tds.length; i++) {
        result.push(tds[i].textContent);
    }
    return result;
}
function get42() {
    var tds = document.querySelectorAll('td');
    return Array.prototype.map.call(tds, function(t) { return t.textContent; });
}