Ajax响应使用查找查找HTML片段
我正在用JQuery查找一些测试,我有一个来自AJAX请求的html响应,所以最初的结果就是这个。
Hi
在我的Ajax成功代码是这个..
success : function(response,status) { console.log( $(response).find('#dashboard').html() ); }
在控制台上打印它,给我一个undefined
。
但是当我修改响应页面(我创建了一个嵌套div)时
Hi
我的Ajax Success代码中的行返回了console.log( $(response).find('#dashboard').html() );
归还了
Hi
我的问题,在执行console.log( $(response).find('#dashboard').html() );
时,第一个HTML是怎么console.log( $(response).find('#dashboard').html() );
它给了我一个未定义的,但是在第二个HTML(嵌套在div中的那个)给了我#dashboard
的内容(我希望得到的那个)。
据我所知,这是一种依赖浏览器的行为,标签作为衡量卫生的标准,例如 。
执行时未找到#dashboard
的原因
$(response).find('#dashboard')
很可能是因为#dashboard
已成为卫生设施之后的根元素,而.find()
与不在根本身上的后代元素匹配。
我通常要避免这个问题,而不是空的
。
$("").html(response).find('#dashboard')
除了正文的内容之外,jQuery会#dashboard
所有内容,因此#dashboard
位于顶层,因此find
实际上会搜索#dashboard
后代。 由于#dashboard
位于顶层,因此您可以使用filter从其他顶级节点中选择它。