Mag*_*pie 5 javascript jquery jquery-selectors
我有一个返回HTML片段的ajax调用.我试图在渲染之前选择该片段中的div.
HTML的一个例子:
<div class="event-detail repBy-container">
<div class="copy">.....</div>
<div class="links">
....
</div>
<div class="contacts">
<div class="name-brand">....</div><div class="details">...., <a href="mailto:...@....">...</a></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
现在的问题是:
function ajaxReturn(data) {
alert($(data).find('.event-detail').length); <-- Returns 0
alert($(data).find('.copy').length); <-- Returns 1
}
Run Code Online (Sandbox Code Playgroud)
这是一个错误还是我做错了什么?
.find()只获取后代,而不是当前级别,你需要.filter()从当前集合中获取项目(这是你返回的根目录),如下所示:
function ajaxReturn(data) {
alert($(data).filter('.event-detail').length); //<-- Returns 1
alert($(data).find('.copy').length); //<-- Returns 1
}
Run Code Online (Sandbox Code Playgroud)
如果要.find()在两种情况下都工作,请将内容添加到父容器,如下所示:
function ajaxReturn(data) {
var parent = $("<div />").append(data);
alert(parent.filter('.event-detail').length); //<-- Returns 1
alert(parent.find('.copy').length); //<-- Returns 1
}
Run Code Online (Sandbox Code Playgroud)