jquery 如何找到与class最接近的兄弟元素,而class是所选元素中某个类的子字符串?

col17t5w  于 2023-01-08  发布在  jQuery
关注(0)|答案(2)|浏览(120)

我有以下结构:

<li class="header group1"></li>
<li class="group1"></li>
<li class="group1"></li>
<li class="group1bottom"></li>

<li class="header group2"></li>
<li class="group2"></li>
<li class="group2"></li>
<li class="group2bottom"></li>

.. and so on

我得到了标题:

let headers = $('.header');

然后,我需要循环遍历每个header元素,提取包含groupx的另一个类,并将每个类与其对应的groupxbottom进行匹配:

headers.each(function() {
   // hide each groupxbottom element
});

我尝试了几次使用$(this).classList[0]和regex来提取特定的类,但是无法获得正确的结果

dsekswqp

dsekswqp1#

你可以这样做:

$('.header').each(function() {
  var n = $(this).attr("class").match(/group(\d+)/)[1];
  $(`.group${n}bottom`).hide();
})

var n = $(this).attr("class").match(/group(\d+)/)[1];将从相应的groupX类中提取编号

    • 演示**

x一个一个一个一个x一个一个二个x

utugiqy6

utugiqy62#

Array.from(document.querySelectorAll('li.header')).forEach(el1 => {
  const arr = (el1.className).split(' ');
  const cl = arr[1] + 'bottom';
  Array.from(document.querySelectorAll('li.' + cl)).forEach(el2 => {
    el2.style.display = 'none';
  });
});
<ul>
  <li class="header group1">header group1</li>
  <li class="group1">group1</li>
  <li class="group1">group1</li>
  <li class="group1bottom">group1bottom</li>

  <li class="header group2">header group2</li>
  <li class="group2">group2</li>
  <li class="group2">group2</li>
  <li class="group2bottom">group2bottom</li>
</ul>

相关问题