Перемещение коллекции элементов
Всем привет.
Нужна помощь. Есть список ul class=b li Пункт1 /li li Пункт2 /li li Пункт3 /li li Пункт4 /li li Пункт5 /li li Пункт6 /li li Пункт7 /li li Пункт8 /li /ul На выходе мне нужно получить такое ul li Пункт1 /li li Пункт2 /li li Пункт3 /li /ul ul li Пункт4 /li li Пункт5 /li li Пункт6 /li li Пункт7 /li li Пункт8 /li /ul Задача вроде простая, но ... var collection; var col; function go () { $('.b li').each(function (index, el) { if (index > 3) { collection =+ el; } return collection; }); } col = go(); alert(col); В результате Undefined Подскажите, что не так делаю? Спасибо. |
webbaster,
странный collection, странный return |
webbaster,
:-? <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ $("<ul/>", {"html": $(".b li:gt(2)")}).insertAfter(".b") }); </script> </head> <body> <ul class="b"> <li>пункт1</li> <li>пункт2</li> <li>пункт3</li> <li>пункт4</li> <li>пункт5</li> <li>пункт6</li> <li>пункт7</li> <li>пункт8</li> </ul> </body> </html> |
webbaster,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function() { var collection = [], ul = $(".b"); function go() { $("li", ul).each(function(index, el) { if (index > 2) collection.push(el) }); return collection } $("<ul/>", { "html": go() }).insertAfter(ul) }); </script> </head> <body> <ul class="b"> <li>пункт1</li> <li>пункт2</li> <li>пункт3</li> <li>пункт4</li> <li>пункт5</li> <li>пункт6</li> <li>пункт7</li> <li>пункт8</li> </ul> </body> </html> |
<!DOCTYPE HTML> <html> <head> </head> <body> <div> <ul> <li>пункт1</li> <li>пункт2</li> <li>пункт3</li> <li>пункт4</li> <li>пункт5</li> <li>пункт6</li> <li>пункт7</li> <li>пункт8</li> </ul> </div> <script> d=document.querySelector("div") d.innerHTML=d.innerHTML.replace(/(3<\/li>)/, "$1</ul><ul>") </script> </body> </html> |
Большое спасибо за помощь. Заработало. Понял ошибку - собирать ноды нужно в массив.
Но есть вопрос по коду. Не понятен этот кусок $("<ul/>", { "html": go() }) Не могли бы объяснить, или ссылочку где почитать на эту тему можно? |
|
Часовой пояс GMT +3, время: 05:02. |