javascript - 可能的 JQuery 类选择器错误

标签 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>

现在的问题:

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/

相关文章:

javascript - 将数据从服务推送到组件的最佳方式是什么?

jquery - 汉堡包和侧边栏效果碰撞

javascript - 从jquery添加的html控件触发asp.net事件

javascript - 正确的 jQuery 选择器是什么?我想获取所有带有 attr x 的 tr,它们位于给定 tr 的正下方(同一级别)

javascript - 这个 JavaScript 错误是什么意思?

javascript - $.post() 之后的代码在 post-request 完成之前执行

javascript - 使用javascript隐藏表格列 - 动态调整布局

javascript - 如果在 React.js 中更新状态后元素具有相同的类,动画将不起作用

jquery - 引导模式显示之前的绑定(bind)事件

javascript - 单击时 JQuery 淡出列表元素