【问题标题】:For loop in conditional statement in JavascriptJavascript中条件语句中的for循环
【发布时间】:2014-10-30 17:07:37
【问题描述】:

如果语句序列,我有盒中盒方式的脚本:

if($(selected).children('li').children('ul')){
  selected = $(selected).children('li').children('ul');
  $(selected).attr('data-level','3');

  if( $(selected).children('li').children('ul')  ){
    selected = $(selected).children('li').children('ul');
    $(selected).attr('data-level','4');

    if( $(selected).children('li').children('ul')  ){
      selected = $(selected).children('li').children('ul');
      $(selected).attr('data-level','5');

      if( $(selected).children('li').children('ul')  ){
        selected = $(selected).children('li').children('ul');
        $(selected).attr('data-level','6');

        if( $(selected).children('li').children('ul')  ){
          selected = $(selected).children('li').children('ul');
          $(selected).attr('data-level','7');
        }
      }
    }
  }
}

我只是想知道如何在一个简单的 for 循环中处理这个问题。感谢您的帮助。

【问题讨论】:

  • 所有条件都会在那个sn-p中通过。您需要检查返回的 jQuery 对象的length
  • 您的代码没有意义。第一个 selected 是从哪里开始的 为什么你可以将所有的 data-level 更改分组到一个 if 语句下?啊,对汤布里奇感到困惑。
  • 对反对者的注意事项:代码对你没有任何意义,并不意味着你完全理解了这个问题。投票不应该那么容易..

标签: javascript jquery for-loop foreach


【解决方案1】:

我猜你想要这样的东西:

$('ul').attr('data-level', function () {
    return $(this).parents('ul').length;
});
[data-level="0"] {
    color: blue;
}
[data-level="1"] {
    color: green;
}
[data-level="2"] {
    color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
    <li>1</li>
</ul>
<ul>
    <li>
        <ul>
            <li>2</li>
        </ul>
    </li>
</ul>
<ul>
    <li>
        <ul>
            <li>
                <ul>
                    <li>3</li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2022-11-26
    • 1970-01-01
    相关资源
    最近更新 更多