我有一个完整的 HTML 文档,我正在使用它$.ajax()
,我的.done()
回调如下所示:
function (data, text_status, jq_xhr) {
var $what_i_want = $(data).find('#what-i-want');
}
wheredata
是一个字符串,其中包含完整的格式良好的 HTML 文档。此代码永远不会到达.find()
.
后$(data)
,我得到:
`Uncaught Error: Syntax error, unrecognized expression: <!DOCTYPE html>`...
事实:
- 我正在使用 jQuery 1.9.0
- 根据 W3C 验证器,该文档是格式良好的 HTML5。
我曾经jQuery()
将许多 HTML 字符串对象化,所以我很惊讶这不起作用。诚然,我不记得曾经尝试过完整的文档。鉴于错误,我猜,也许我需要以某种方式转义这个字符串。但我不确定如何。
顺便说一句,这有效:
var $what_i_want = $('#what-i-want', $.parseHTML(data))
但我无法弄清楚为什么第一种方法会失败。