親の「.parent_num」を、自分の「.parent_num」の前に繋げたいです。
つまり、以下のHTMLでコメントアウトしてある変化をJSで起こしたいということになります。
ただし、その変化は「.childrens」の中だけで起こし、Aさんは親であるY家の「.parent_num」を、自分の「.parent_num」の前に繋げません。
html
1<li> 2 <div>Y家 3 <span class="num">100</span> 4 <span class="parent_num">0</span> 5 </div> 6 <ul class="childrens"> 7 <li> 8 <div>Aさん(家長) 9 <span class="num">101</span> 10 <span class="parent_num">100</span> 11 </div> 12 </li> 13 <li> 14 <div>Bさん(Aの子) 15 <span class="num">102</span> 16 <span class="parent_num">101</span> 17 <!-- parent_numをJSで「100-101」にしたい --> 18 </div> 19 </li> 20 <li> 21 <div>Cさん(Aの子) 22 <span class="num">103</span> 23 <span class="parent_num">101</span> 24 <!-- parent_numをJSで「100-101」にしたい --> 25 </div> 26 </li> 27 <li> 28 <div>Dさん(Cの子) 29 <span class="num">104</span> 30 <span class="parent_num">103</span> 31 <!-- parent_numをJSで「100-101-103」にしたい --> 32 </div> 33 </li> 34 </ul> 35</li>
そのためにこんなjQueryを考えてみたのですが、まるで歯が立たず、思うようにできません。
方法がわかる方がいたらご指導下さい。
jQuery
1//全てのnumを配列に入れる 2var arr=[]; 3$(".num").each(function() { 4 arr.push($(this).text()); 5}); 6 7//全てのparent_numの中で 8$(".parent_num").each(function() { 9 //自分のnumと同じ値だったら、自分の値の前に「親のparent_num」と「-」を付ける。 10 var myNum = $(this).consest('div').find('.num').text(); 11 var parentNum = 12 if (arr == myNum) { 13 $(this).prepend( parentNum + '-' ); 14 } 15}); 16
回答1件
あなたの回答
tips
プレビュー