我有一个返回 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>
现在的问题:
function ajaxReturn(data) {
alert($(data).find('.event-detail').length); <-- Returns 0
alert($(data).find('.copy').length); <-- Returns 1
}
这是错误还是我做错了什么?
最佳答案
.find()
只获取后代,而不是当前级别,你需要.filter()
从当前集合中获取项目(这是您返回的内容的根),如下所示:
function ajaxReturn(data) {
alert($(data).filter('.event-detail').length); //<-- Returns 1
alert($(data).find('.copy').length); //<-- Returns 1
}
如果你想要.find()
要在这两种情况下工作,请将内容添加到父容器中,如下所示:
function ajaxReturn(data) {
var parent = $("<div />").append(data);
alert(parent.filter('.event-detail').length); //<-- Returns 1
alert(parent.find('.copy').length); //<-- Returns 1
}
关于javascript - 可能的 JQuery 类选择器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098976/