这是我的HTML



let allElements = document.querySelectorAll("div.menu_sub_box ul.lvl_1 > li");
allElements.forEach((el, index) => {
  console.log(el);
  let id = (el.id = index + 1);
});

<div class="menu_sub_box">
      <ul class="lvl_1">
        <li>
          <a class="lvl_1" href="abc">val 1</a>
          <ul class="lvl_2">
            <li><a href="item1">Item 1 content</a></li>
            <li><a href="item2">Item 1 content</a></li>
            <li><a href="item2">Item 1 content</a></li>
          </ul>
        </li>
        <li>
          <a class="lvl_1" href="abc">val 2</a>
          <ul class="lvl_2">
            <li><a href="item1">Item 1 content</a></li>
            <li><a href="item2">Item 1 content</a></li>
            <li><a href="item2">Item 1 content</a></li>
          </ul>
        </li>
      </ul>
    </div>





这是我的问题。我想向每个li类='lvl-1'添加uniqe ID。我通过foreach循环执行此操作,然后将依赖于此ID的同一类添加到class ='lvl_2'的每个子元素中。例如 :



<ul class="lvl_1">
        <li id='1'>
          <a class="lvl_1" href="abc">val 1</a>
          <ul class="lvl_2">
            <li class='1-col'><a href="item1">Item 1 content</a></li>
            <li class='1-col'><a href="item2">Item 1 content</a></li>
            <li class='1-col'><a href="item2">Item 1 content</a></li>
          </ul>
        </li>
        <li id='2'>
          <a class="lvl_1" href="abc">val 2</a>
          <ul class="lvl_2">
            <li class='2-col'><a href="item1">Item 1 content</a></li>
            <li class='2-col'><a href="item2">Item 1 content</a></li>
            <li class='2-col'><a href="item2">Item 1 content</a></li>
          </ul>
        </li>
      </ul>





对不起我的英语,希望您能理解我的意思。感谢帮助

最佳答案

出于打印目的,我将ID指定给容器div,以便在附加ID之后查看html本身。基本上,您可以遍历所有<li>元素并设置id=1,然后为<ul>的所有子元素添加一个"-col"更改为现有ID。



let lis = document.querySelectorAll("div.menu_sub_box ul.lvl_1 > li");
lis.forEach((element, index) => {
  const id_cols = element.querySelectorAll("li");

  element.id = index + 1;

  id_cols.forEach((column) => {
    column.className = (index + 1) + "-col";
  })

})

console.log(document.getElementById("menu_sub_box").innerHTML)

<div class="menu_sub_box" id="menu_sub_box">
  <ul class="lvl_1">
    <li>
      <a class="lvl_1" href="abc">val 1</a>
      <ul class="lvl_2">
        <li><a href="item1">Item 1 content</a></li>
        <li><a href="item2">Item 1 content</a></li>
        <li><a href="item2">Item 1 content</a></li>
      </ul>
    </li>

    <li>
      <a class="lvl_1" href="abc">val 2</a>
      <ul class="lvl_2">
        <li><a href="item1">Item 2 content</a></li>
        <li><a href="item2">Item 2 content</a></li>
        <li><a href="item2">Item 2 content</a></li>
      </ul>
    </li>

    <li>
      <a class="lvl_1" href="abc">val 3</a>
      <ul class="lvl_3">
        <li><a href="item1">Item 3 content</a></li>
        <li><a href="item2">Item 3 content</a></li>
        <li><a href="item2">Item 3 content</a></li>
      </ul>
    </li>

  </ul>
</div>

10-08 07:55
查看更多