###実現したいこと
このように不定数ある<li>
を2件ずつに分けて、<ul>
の中に詰め込みたいです。
const li = '<li>1</li>,<li>2</li>,<li>3</li>,<li>4</li>,<li>5</li>';
↓ 具体的には上を、以下のように出力したいです。
html
1 2<div> 3 <p>ttl</p> 4 <ul> 5 <li>1</li><li>2</li> 6 </ul> 7</div> 8<div> 9 <p>ttl</p> 10 <ul> 11 <li>3</li><li>4</li> 12 </ul> 13</div> 14<div> 15 <p>ttl</p> 16 <ul> 17 <li>5</li> 18 </ul> 19 </div>
###試したこと
下記コードのサンプルです。
なんとかここまで書いてみたものの、TypeError: context is undefined
のエラーが出たり、<li>
を2件ずつに分ける方法がイマイチわからなかったり、とても苦戦しています。
もしよかったら、どうすれば実現できるか教えて頂けませんでしょうか。
jquery
1// liの外側を作る(できればこの関数は変えたくないです) 2function ulArrGet( num ){ 3 let ulArr = []; 4 for (let i=0; i<num; i++) { 5 ulArr.push( '<div><p>ttl</p><ul></ul></div>' ); 6 } 7 return ulArr; 8} 9 10// liの外側を取得 11const li = '<li>1</li>,<li>2</li>,<li>3</li>,<li>4</li>,<li>5</li>'; 12const liArr = li.split(','); 13const num = liArr.length; 14let ulArr = ulArrGet( Math.ceil( num/2 ) ); 15 16// liを2件ずつ取得 17let li2 = []; 18$(liArr).each(function(index, element) { 19 li2.push( $(this) ); 20 $(ulArr).html( li2 ); 21}); 22 23// 出力 24$('body').html( ulArr );
※できればfunction ulArrGet( num ){}
という関数は変えずにやりたい、と思っているのですが、できますでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/16 08:13 編集
2019/07/16 08:10
2019/07/16 08:15