如何更改具有 id 列表的所有元素的 class?

How to change the class for all elements with list of ids?

初始状态是我有一个 id 数组 [45, 3, 678] 和一个 div 标签,里面有很多元素,它们是嵌套的,并且都有一个唯一的 id。我只需要为那些 ID 在 ID 数组中的元素添加 class "selected"。我怎样才能做到这一点?

<div id="parent-class">
  <details id=1>
    <ul id=2>
      <details id=3></details>
      <details id=4></details>
      <details id=5></details>
      ...
    </ul>
  </details>
  <details id=56>
    <ul id=57>
      <details id=58></details>
      <details id=59></details>
      <details id=60></details>
      ...
    </ul>
  </details>

</div>



$('div#parent-class').ready(function () {
    var options = [45, 3, 678];

    /* Here I need to loop through all children and assign class for those elements whose id is in array options*/
    $('div#parent-class').children().each(function(){
      var id = $(this).attr('id');
      if ($.inArray(id, options)) $(this).addClass('selected');
    });
  });

非常感谢任何帮助

正如 @freedomn-m 注释掉的那样,您需要您的 ID 至少包含一个字符,所以我建议您更改您的 ID,对于循环,您只需使用属性 select 或 select 数组中的元素

$('div#parent-class').ready(function () {
    var options = [56, 3, 60];
    options.forEach(function(v,i) {
      $('[id="item_'+v+'"]').addClass('selected');
      //or $("#item_" + v).addClass('selected');
    })
  });
.selected{border:1px solid red}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="parent-class">
  <details id="item_1">
    <ul id="item_2">
      <details id="item_3"></details>
      <details id="item_4"></details>
      <details id="item_5"></details>
      ...
    </ul>
  </details>
  <details id="item_56">
    <ul id="item_57">
      <details id="item_58"></details>
      <details id="item_59"></details>
      <details id="item_60"></details>
      ...
    </ul>
  </details>

</div>