javascript - 检查下一个元素是否具有特定的类

标签 javascript jquery

html结构:

<div class="row">
   <div class="span"></div>
   <div class="span"></div>
   <div class="navMenu">
       <ul>
           <li><a href=#">Link 1</a></li>
           <li><a href=#">Link 1</a></li>
       </ul>
    </div>
</div>

然后我在上面的 html 之后添加一个"new"div:

   <div class="row">
      <div class="span"></div>
      <div class="span"></div>
      <div class="navMenu">
        <ul>
           <li><a href=#">Link 1</a></li>
           <li><a href=#">Link 1</a></li>
        </ul>
      </div>
   </div>
   <div class="new"></div>

$(".navMore li a").each(function() {
   $(this).on("click", function() {
            $('<div class="new"></div>').insertAfter($(this).closest('.row'));
            $('<div class="span"></div>').appendTo('.new');
   });
});

最后,我需要检查包含菜单的 div 后面是否存在类 .new 的 div,如果存在,则在其中添加 .span div,然后如果类 .new 的 div 不存在,则创建它,然后在其中插入类 .span 的 div:

$(".navMore li a").each(function() {
   $(this).on("click", function() {
      if($(this).next().hasClass("new")){
          $('<div class="span"></div>').appendTo('.new');
      }
      else {
            $('<div class="new"></div>').insertAfter($(this).closest('.row'));
            $('<div class="span"></div>').appendTo('.new');
      }
   });
});

重要的是,具有 .new 类的新 div 是紧邻菜单的 div 容器的具有此类类的 div。原因是因为我会使用许多带有许多不同 .row div 的菜单,所以我想定位正确的一个。

上面的最终代码不起作用

最佳答案

您不需要每个循环 - 您还注意到 .new.row 是 sibling 吗?

$(".navMore li a").on("click", function() {
  var $el = $(this);
  var $row = $el.closest('.row'); // <-- get to row first
  if($row.next('.new').length){ // check next element
      $('<div class="span"></div>').appendTo('.new');
  }
  else {
        $('<div class="new"></div>').insertAfter($row);
        $('<div class="span"></div>').appendTo('.new');
  }
});

你的类(class)也混淆了..所以你需要确保它们匹配

<div class="navMenu"> <!-- <-- here -->
    <ul>
       <li><a href="#">Link 1</a></li>
       <li><a href="#">Link 1</a></li>
    </ul>
  </div>

$(".navMore li a") // <-- here

关于javascript - 检查下一个元素是否具有特定的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14593222/

相关文章:

Javascript - 如何从右键单击获取图像 URL

javascript - 属性 'navigation' 在类型“Readonly<{}>”和“Readonly<{children?”上不存在? : ReactNode; }>

javascript - 指定 Chart.js 条形图中每个条形的不同厚度

javascript - 带有摘要式身份验证的 Swagger UI

javascript - 如何在 JavaScript 函数中使用 Sass 变量?

javascript - Chart.js v2 : How to make tooltips always appear on pie chart?

javascript - 使用 bxslider,在调整浏览器大小之前没有幻灯片?

Javascript 字符串是不可变的,但按索引重新分配不会引发错误

javascript - AngularJS 指令未正确绑定(bind)属性

jquery - 如何避免文件上传时的 CORS 预检请求?