Копирование определенных уровней из неупорядоченного списка?
Я начинающий программист и столкнулся со следующей проблемой: если у меня есть вложенный неупорядоченный список, как я могу скопировать только элементы до определенного уровня? Например, если я хочу уменьшить этот неупорядоченный список до первых двух уровней:
<ul>
<li>A</li>
<ul>
<li>C<br>
</li>
<li>D<br>
</li>
<ul>
<li>E<br>
</li>
<li>F<br>
</li>
<ul>
<li>G<br>
</li>
<li>H<br>
</li>
</ul>
</ul>
<li>E<br>
</li>
</ul>
<li>B</li>
</ul>
в
<ul>
<li>A</li>
<ul>
<li>C<br>
</li>
<li>D<br>
</li>
<li>E<br>
</li>
</ul>
<li>B</li>
</ul>
Есть ли простой способ добиться этого?
3 ответа
Решение
Простая версия:
$('ul ul ul').remove();
Я также написал небольшую функцию, которая позволяет вам указать корневой элемент и уровень:
function reduce(root, selector, level) {
var use = root;
for (var i = 0; i <= level; i++) {
use += ' ' + selector;
}
$(use).remove();
}
Используйте по телефону:
//if the lists are in an element with the id 'root', see Demo
reduce('#root', 'ul', 2);
Это должно быть что-то вроде $('ul ul ul').remove()
, но вам лучше заключить его, например, в div с идентификатором или классом, чтобы вы могли выполнить локальную очистку $('div.twolvls ul ul ul').remove()
Если вы просто удаляете неупорядоченные списки 3-го уровня, вы можете использовать $(ul ul ul).remove()
,