gpt4 book ai didi

javascript - 为什么我不能在 jQuery 中解析 A​​jax html GET 响应?

转载 作者:太空狗 更新时间:2023-10-29 16:51:38 24 4
gpt4 key购买 nike

我正在调整 Chrome 扩展,我在其中使用 Ajax 请求从请求的 URL 获取 HTML。这行得通,但我想获取某些特定元素的所有文本值。例如,类 .heading-bold

的所有内容 script.js

$.ajax({
url: "http://page.com/page.html",
type: "GET",
dataType: "html",
success: function(data) {
console.log($(data).filter( '.heading_bold' ).text());
}
});

响应 HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Beerpong</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
</head>
<body>
<div id="table-container">
<table>
<tbody>
<tr>
<td><div class="heading_bold">Beerpong</div></td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

将其记录到控制台工作正常。这是我的输出:

Uncaught Error: Syntax error, unrecognized expression: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0....

为什么?为什么它不只是 console.log 我想要的值?

最佳答案

如果您使用的是 jquery 1.9,请执行以下操作:

...
success: function(data) {
var html = $.parseHTML(data);
console.log($(html).find( '.heading_bold' ).text());
}
..

因为根据 jQuery 1.9::传递给 jQuery() 的 HTML 字符串以除小于字符以外的其他内容开头,将被解释为选择器。由于字符串通常不能被解释为选择器,因此最有可能的结果将是 Sizzle 选择器引擎抛出的“无效选择器语法”错误。使用 jQuery.parseHTML() 解析任意 HTML。

关于javascript - 为什么我不能在 jQuery 中解析 A​​jax html GET 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21038544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com