複数table内にあるdl配下のdtの高さを取得し、そのtable内での最大値で揃えたい
下記のようにtable内にdlを3つ配置し、そのdtの高さを最大値で揃えようとしています。
tableが複数あるためeach functionでそれぞれのtable内のdtの高さを配列に入れ最大値を取得、.cssでdtの高さを設定しようとしたのですが
配列がtableごとでリセットされず意図しないheightになってしまいます。
初心者のため見苦しいコードですが、ご助言いただけますと幸いです。
発生している問題・エラーメッセージ
配列がリセットされず高さが足されていってしまいます。
該当のソースコード
html
1<div class="wrapper"> 2<table class="parent"> 3 <tbody> 4 <tr> 5 <td> 6 <dl> 7 <dt class="child">テキスト</dt> 8 <dd></dd> 9 <dd></dd> 10 <dd></dd> 11 </dl> 12 <dl> 13 <dt class="child">テキスト</dt> 14 <dd></dd> 15 <dd></dd> 16 <dd></dd> 17 </dl> 18 <dl> 19 <dt class="child">テキスト</dt> 20 <dd></dd> 21 <dd></dd> 22 <dd></dd> 23 </dl> 24 </td> 25 </tr> 26 </tbody> 27</table> 28<table class="parent"> 29 <tbody> 30 <tr> 31 <td> 32 <dl> 33 <dt class="child">テキスト</dt> 34 <dd></dd> 35 <dd></dd> 36 <dd></dd> 37 </dl> 38 <dl> 39 <dt class="child">テキスト</dt> 40 <dd></dd> 41 <dd></dd> 42 <dd></dd> 43 </dl> 44 <dl> 45 <dt class="child">テキスト</dt> 46 <dd></dd> 47 <dd></dd> 48 <dd></dd> 49 </dl> 50 </td> 51 </tr> 52 </tbody> 53</table> 54<table class="parent"> 55 <tbody> 56 <tr> 57 <td> 58 <dl> 59 <dt class="child">テキスト</dt> 60 <dd></dd> 61 <dd></dd> 62 <dd></dd> 63 </dl> 64 <dl> 65 <dt class="child">テキスト</dt> 66 <dd></dd> 67 <dd></dd> 68 <dd></dd> 69 </dl> 70 <dl> 71 <dt class="child">テキスト</dt> 72 <dd></dd> 73 <dd></dd> 74 <dd></dd> 75 </dl> 76 </td> 77 </tr> 78 </tbody> 79</table> 80</div> 81
js
1$(function () { 2 $('.parent').each(function () { 3 var array = []; 4 for (var i = 0; i < $('.child', this).length; i++) { 5 var dt_height = $('.child', this).outerHeight(); 6 array.push(dt_height); 7 var maxH = Math.max.apply(null, array); 8 $('.child').css({ 9 "height": maxH + "px" 10 }); 11 } 12 }); 13});
試したこと
array.length = 0;
var array = [];
を思い当たる箇所に挿入してみましたが想定している動作にはなりませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/11 02:05
2018/12/11 02:11
2018/12/11 05:39