Исправить недопустимые вложенные списки с помощью jQuery

#javascript #html #jquery

#javascript #HTML #jquery

Вопрос:

У меня осталась довольно большая устаревшая куча HTML. У меня есть несколько списков, в которых есть вложенные списки, которые не были включены в элемент списка, хотя это отображается правильно, это по-прежнему вызывает проблему при тестировании доступности. Есть ли метод jQuery, который позволяет мне исправить это, пока я не смогу убедить поставщиков контента сделать это правильно?

 <ul>
    <li>list</li>
    <li>list</li>
       <ul class="shouldBeSublist">
        <li>list</li>
        <li>list</li>
        <li>list</li>
      </ul>
    <li>list</li>
</ul>
  

последняя неудачная попытка…

 $("ul ul").append(function () {
                return this.closest("li");
});
  

желаемый результат…

 <ul>
    <li>list</li>
    <li>list
       <ul class="shouldBeSublist">
        <li>list</li>
        <li>list</li>
        <li>list</li>
      </ul>
    **</li>**
    <li>list</li>
</ul>
  

Ответ №1:

Выберите только списки, которые являются дочерними элементами списков, и используйте appendTo() метод jQuery для перемещения их к предыдущему элементу списка:

 $('ul > ul').each(function() {
  $(this).appendTo($(this).prev('li'));
});
  

https://api.jquery.com/appendto/

ДЕМОНСТРАЦИЯ

Комментарии:

1. Исправлено для использования более явных селекторов. Это может предотвратить недопустимые изменения.