如果不存在则创建节点,否则附加返回的html

时间:2019-05-06 05:00:45

标签: javascript jquery html comments nodes

我正在构建具有一层深层嵌套回复的评论系统。我的评论系统基于<ul><li>标记。下面是树的示例:

<ul class="comments">
  <li>comment text 1</li>
  <li>
    comment text 2
    <ul class="nested">
      <li>Reply 1 of comment text 2</li>
      <li>Reply 2 of comment text 2</li>
    </ul>
  </li>
</ul>

注释是基于Ajax的(jQuery)。我的问题是如何检查父级注释是否存在嵌套答复?如果存在,那么我应该能够仅添加新注释,否则,我应该能够创建子<ul class="nested">节点,然后插入返回的html。

因此,以上面的示例为例,如果有人在回复comment text 1,则应该能够首先创建<ul>节点,然后插入返回的<li>元素。但是,如果有人在回复comment text 2。我应该能够将返回的<li>元素附加到现有的<ul>子节点中。

`

1 个答案:

答案 0 :(得分:0)

我们可以通过获取其长度来检查孩子“ .nested”的存在。 如果$(this)是您的列表Item li标签(注释文本1)...

<script>

    var comment = 'Reply 1 of comment text 1';
    if($(this).find('.nested').length > 0) {
        $(this).find('.nested').append('<li>'+comment+'</li>');
    } else {
        $(this).append('<ul class="nested"><li>'+comment+'</li></ul>');
    }

</script>