普段からCSSもjqueryもなんとなく、なんとなーく使っているので、いつまでたってもビギナーのまま。。
テーブルの中にあるリストの件数を取得したい
サーバサイドはC#です。
View
<table id="tbl"> <thead> <tr> <th style="text-align:center;" id="display_no">@Html.LabelFor(m => m.First().display_no, new { @class = "control-label", @style = "font-weight:bold" })</th> <th style="text-align:center;">@Html.LabelFor(m => itmFirst.name, new { @class = "control-label", @style = "font-weight:bold" })</th> <th style="text-align:center;">@Html.LabelFor(m => itmFirst.enabled, new { @class = "control-label", @style = "font-weight:bold" })</th> <th style="text-align:center;">@Html.LabelFor(m => itmFirst.color, new { @class = "control-label", @style = "font-weight:bold" })</th> <th style="display:none"></th> </tr> </thead> <tbody id="sortable"> @foreach (website.Models.Master.partModel itm in Model) { <tr> <td style="text-align:center;" class="row_no" id="order_num">@itm.display_no</td> <td>@itm.name</td> <td style="text-align:center; vertical-align:middle;"> @Html.CheckBoxFor(mbox => itm.boolEnabled) @Html.Hidden("enabled", itm.enabled, "enabled") </td> <td style="text-align:center; vertical-align:middle;" ><div id="palette_@itm.id">@Html.Partial("_ColorPalette")</div></td> <td style="display:none;" id="id">@itm.id</td> </tr> } </tbody> </table>
@Html.Partial("_ColorPalette")
<div class="group"> <ul> <li><a style="color:navy"><i class="fa fa-circle"></i></a></li> <li><a style="color:teal"><i class="fa fa-circle"></i></a></li> <li><a style="color:green"><i class="fa fa-circle"></i></a></li> <li><a style="color:purple"><i class="fa fa-circle"></i></a></li> <li><a style="color:maroon"><i class="fa fa-circle"></i></a></li> <li><a style="color:deeppink"><i class="fa fa-circle"></i></a></li> <li><a style="color:palevioletred"><i class="fa-circle"></i></a></li> <li><a style="color:lightblue"><i class="fa fa-circle"></i></a></li> <li><a style="color:mediumturquoise"><i class="fa-circle"></i></a></li> </ul> </div>
Javascript
$.each($("#tbl tbody").children(), function () { //alert($(this).html()); // <tr>の中身を表示する。 alert($(this).find('li').length); // ←ここ。 });
$(this).find('li').length
これで取得できました。
これを探し当てるのに小1時間・・・。
alert結果。
さらにリストをまわして処理させたい場合はこう。
$.each($("#tbl tbody").children(), function () { //alert($(this).html()); // <tr>の中身を表示する。 $(this).find('li').each(function () { // 子要素(a)のプロパティ値を表示する alert($("a", this).css('color')); return false; }); return false; });
ちなみに、eachから抜けたい場合は「return」だけじゃだめ。
「return false」と書く。