未捕获的TypeError:$(...)。text不是函数

时间:2017-05-15 03:46:33

标签: javascript html node.js cheerio

我有一个非常简单的HTML page,我尝试使用cheerio执行一个简单的CSS选择器。

const $ = cheerio.load(html);
console.log($(`body > div > div.-layout-h > div.task-tests--label`).text());

结果:
Input:Output: Expected Output:Console Output:

我的目标是获取第一个元素并打印出其内部文本。我还尝试使用each()迭代所选元素:

const $ = cheerio.load(html);
$(`body > div > div.-layout-h > div.task-tests--label`).each((i, e) => {
    console.log(`${i} = ${e.text()}`);
});  

结果:

0 = [object Object]
1 = [object Object]
2 = [object Object]
3 = [object Object]

如何打印每个所选项目的内部文本?

3 个答案:

答案 0 :(得分:0)

如果要显示单击的元素文本,则应使用this进行理解,请参见此示例

$('#change').click(function () {
$(this).text('this text changed');
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="change">hello world</button>

答案 1 :(得分:-4)

将以下标记添加到您的头部。

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

您也可以使用

console.log($(`.task-tests--label`).text());

让您的生活更轻松。上面的代码将选择所有带有“ task-tests - label ”类的标签,并控制其各自的文本。

答案 2 :(得分:-4)

使用Jquery:

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

Jquery网站: http://jquery.com/

Jquery .text()函数: http://api.jquery.com/text/