我有一个完整的 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))
但我无法弄清楚为什么第一种方法会失败。