Разделить список по классам с помощью jQuery - PullRequest
0 голосов
/ 15 июня 2019

У меня есть неупорядоченный список, и некоторые из его элементов имеют классы, такие как:

<ul>
    <li class="specialOne">Some Content</li>
    <li>Some Content</li>
    <li>Some Content</li>
    <li>Some Content</li>
    <li class="specialTwo">Some Content</li>
    <li class="specialThree">Some Content</li>
    <li>Some Content</li>
</ul>

Моя цель - разбить его на два разных неупорядоченных списка, один из которых содержит элементы списка без класса, а другой собирает элементы списка с классами, например:

   <ul>
       <li>Some Content</li>
       <li>Some Content</li>
       <li>Some Content</li>
       <li>Some Content</li>
   </ul>
   <ul>
       <li class="specialOne">Some Content</li>
       <li class="specialTwo">Some Content</li>
       <li class="specialThree">Some Content</li>
   </ul>

Я пробовал это , но он группирует списки по сходному классу, и я хочу, чтобы все классы были объединены.

Есть ли простой код, чтобы получить это? Я в растерянности и хотел бы получить ключ к разгадке!

Спасибо

1 Ответ

1 голос
/ 15 июня 2019

Это работает, как вы просили, сопоставляя любые li, которые имеют class attr


Демо

// Create new list and append to end of body
$("body").append("<ul class='class-list'></ul>");

// Append all list items that have the class attribute
$("ul.class-list").append( $("li[class]") );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body>
<ul>
    <li class="specialOne">Some Content + class</li>
    <li>Some Content</li>
    <li>Some Content</li>
    <li>Some Content</li>
    <li class="specialTwo">Some Content + class</li>
    <li class="specialThree">Some Content + class</li>
    <li>Some Content</li>
</ul>
</body>
...