Jquery 尝试在ajax返回的数据之外查找父选择器
我有一个列表,如下所示:Jquery 尝试在ajax返回的数据之外查找父选择器,jquery,Jquery,我有一个列表,如下所示: <ul> <li class="service-well"> <div class="service-header"><h1>Service Name</h1></div> ... lost of children, and children of children in here. <ul class="comments"> <li cla
<ul>
<li class="service-well">
<div class="service-header"><h1>Service Name</h1></div>
... lost of children, and children of children in here.
<ul class="comments">
<li class="comment-holder">
....This is a comment
</li>
</ul>
</li>
</ul>
var serviceClass = $(data).attr('class');
var serviceTitle = $('.comments').find('.' + serviceClass).closest('.service-well').find('.service-header').find('h1').text();
现在,如果我在返回数据后在Chrome中使用控制台,这就行了,但由于某些原因,在查看控制台以获取记录的服务标题时,我什么也得不到。返回的数据是:
<li class="comment-holder">stuff here</li>
这里的东西
然而,我可以很容易地从返回的li数据中筛选和查找选择器,但似乎无法找到它之外的家长
非常感谢您的帮助。非常感谢你
success: function(data) {
var serviceTitle = $(data)..
在这种情况下,$(数据)没有引用当前在DOM中的列表项。而是根据从AJAX请求收到的HTML创建一个新的jQuery对象。此时,DOM中不存在元素,因此不能用作遍历的参考点最近(..)在这里不合适
相反,您可能希望尝试以下方法:
<ul>
<li class="service-well">
<div class="service-header"><h1>Service Name</h1></div>
... lost of children, and children of children in here.
<ul class="comments">
<li class="comment-holder">
....This is a comment
</li>
</ul>
</li>
</ul>
var serviceClass = $(data).attr('class');
var serviceTitle = $('.comments').find('.' + serviceClass).closest('.service-well').find('.service-header').find('h1').text();
在此之后,serviceTitle变量包含正确的“服务标题”。在添加到
注释后,请尝试以下操作:
var serviceTitle = $('.comments .service-well:last .service-header h1').text();
更新:
var serviceTitle = $(data).find('.service-well:first .service-header h1').text();
我觉得自己很傻,一开始就没有尝试。通过在使用ajax函数之前捕获服务标题,我解决了问题。我在使用数据查找时遇到了问题。试着改为说$(.comments li').last().closest('.service well')…
我看不出你在哪里向ul
comments添加注释是数据变量中的Html漏洞?@AdrianoGalessoAlves整个东西都是我控制台.log(数据)返回的东西;这似乎不起作用,但仍在调查中。我感谢你的帮助。请参阅我发布的答案。问题是页面上有多个服务,每个服务都有自己的评论块。$(数据)只包含 评论。我需要离开那几个家长。如果我能找到一种方法来创建/附加一个选择器到数据中的li元素,那么我应该很好。我感谢您的帮助。请看我的答案张贴。