querySelectorAll()打印所有节点的textcontent

时间:2015-03-17 00:42:29

标签: 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="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 ..我做错了什么?

1 个答案:

答案 0 :(得分:4)

你不能那样使用document.querySelectorAll。它返回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; });
}

js fiddle