javascript - 如果没有子addClass?

标签 javascript jquery html css

如果 li 的父级内部没有 ul 元素,我想添加我的 span.toggle 类。

click to see on codepen

HTML:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>No Title</title>
</head>
<body> 

    <ul>
        <li>
            <span class="toggle"></span><input type="checkbox" name="" id="0"><label for="0">Main 1</label>
              <ul>
                 <span class="toggle"></span> <li><input type="checkbox" name="" id="0-1"><label for="0-1">Child 1</label></li>
                  <span class="toggle"></span><li><input type="checkbox" name="" id="0-2"><label for="0-2">Child 2</label>
                      <ul>
                          <span class="toggle"></span>  <li><input type="checkbox" name="" id="0-1-1"><label for="0-1-1">Sub Child 1</label></li>
                            <span class="toggle"></span><li><input type="checkbox" name="" id="0-1-2"><label for="0-1-2">Sub Child 2</label></li>
                      </ul>
                  </li>
                 <span class="toggle"></span> <li><input type="checkbox" name="" id="0-3"><label for="0-3">Child 3</label></li>
                 <span class="toggle"></span> <li><input type="checkbox" name="" id="0-4"><label for="0-4">Child 4</label></li>
              </ul>
        </li>
        <li>
            <span class="toggle"></span> <input type="checkbox" name="" id="1"><label for="1">Main 2</label>
        </li>
        <li>
            <span class="toggle"></span> <input type="checkbox" name="" id="2"><label for="2">Main 2</label>
             <ul>
               <li>
                 <span class="toggle"></span> <input type="checkbox" name="" id="2-1"><label for="2-1">Child 1</label>
               </li>
             </ul>
        </li>
    </ul>

<script type="text/javascript" src="https://cdn.anitur.com.tr/js/jquery-1.8.2.min.js" ></script>

</body>
</html>

CSS:

 ul{
    list-style: none;
    padding:0;
    margin: 0;
    margin-left:20px;
  font:13px calibri;
  }
  input[type="checkbox"]{
    vertical-align:middle;
  }

span.toggle{
  float:left;
  display:block;
  background:url("https://cdn3.iconfinder.com/data/icons/fatcow/16/bullet_toggle_plus.png") no-repeat 0px 1px;
  width:16px;
  height:16px;
}
 ul> * ul {
  display:none;
  }

  input[type="checkbox"]:checked ~ ul{
  display:block;
}

jQuery:

$(function(){
        $("ul li").children("ul").each(function(){
              $(this).find("li").addClass("parentUl");
        });
});

最佳答案

$('ul > li').each(function(i,t){
    var t = $(t);

    if(! t.children('ul').length){
        t.children('span').addClass('add-class');
    }
});

关于javascript - 如果没有子addClass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36048543/

相关文章:

php - 某些浏览器中 cookie 的未定义索引

html - 通过调整页面大小扩展导航栏 Twitter Bootstrap

javascript - 使用按钮传递变量(Ajax Modal)

javascript - 无法访问 $.each 中的对象属性

javascript - 根据 Rails 应用程序中选定的选项显示文本

asp.net - IE6 及更高版本上禁用按钮的前景色

javascript - 应用于特定数字输入字段的混合/最大范围

javascript - 更改 YUI 中 anchor 的 href

javascript - 提交联系表 7 后更改 Div 背景

javascript - meteor 将模态点击事件的值传递给父模板