querySelectorAll() 打印所有节点的文本内容
querySelectorAll() print textcontent of all nodes
这是我用来从网页获取所有文本内容的代码。但它不起作用,我不知道我做错了什么。
<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>
这就是我的 Js 代码:
function get42() {
return document.querySelectorAll('tr>td').textContent;
}
console.log(page.evaluate(get42));
输出:null
..我做错了什么?
你不能那样使用 document.querySelectorAll
。它returns一个NodeList
。您必须自己从每个节点获取 textContent
。
更长的路:
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; });
}
这是我用来从网页获取所有文本内容的代码。但它不起作用,我不知道我做错了什么。
<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>
这就是我的 Js 代码:
function get42() {
return document.querySelectorAll('tr>td').textContent;
}
console.log(page.evaluate(get42));
输出:null
..我做错了什么?
你不能那样使用 document.querySelectorAll
。它returns一个NodeList
。您必须自己从每个节点获取 textContent
。
更长的路:
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; });
}