Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 尝试在ajax返回的数据之外查找父选择器_Jquery - Fatal编程技术网

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元素,那么我应该很好。我感谢您的帮助。请看我的答案张贴。