私はデータを含むテーブルを自動的に生成するソフトウェアを使用しています。これに加えていくつかの展開/折りたたみ機能を追加しようとしています。私はテーブルがソフトウェア内でどのように作成されるかを変更できないので、私が試みているオプションはjQueryで特定のクラス名と属性を追加することです。あらかじめ作成されたテーブルへの属性の実装
次のプラグインが使用するレイアウトを再作成しようとしています:Alvaro's Collapsable Table Plugin for jQueryしかし、これは最善の方法ではありません。
これは、ソフトウェアが生成するテーブルです:
<link rel='stylesheet' href='http://alvaroveliz.github.io/aCollapTable/stylesheets/app.css' />
<script type="text/javascript" src="http://alvaroveliz.github.io/aCollapTable/javascripts/jquery.min.js"></script>
<script type="text/javascript" src="http://alvaroveliz.github.io/aCollapTable/javascripts/jquery.aCollapTable.js"></script>
<table style="border-collapse:collapse;" class="ls" LID="exampleRS" cellpadding="0">
<tr>
<td class="cRS10 lt" cid="0" uid="10" name="cRS10" type="columnTitle"><span tabIndex="0" class="textItem" ctx="1">Header</span></td>
<td class="cRS12 lt" cid="1" uid="12" name="cRS12" type="columnTitle"><span tabIndex="-1" class="textItem" ctx="2">Value</span></td>
</tr>
<tr>
<td class="cRS15 oh" cid="0" uid="15" name="cRS15" type="section"><span tabIndex="-1" class="textItem" ctx="3">Parent1</span></td>
<td style="text-align:right" class="cRS17 oh" cid="1" uid="17" name="cRS17" type="section"><span tabIndex="-1" class="textItem" ctx="4:3">123</span></td>
</tr>
<tr>
<td class="cRS20 lc" cid="0" uid="20" name="cRS20" type="datavalue"><span tabIndex="-1" class="textItem" ctx="5:6:3">Element2</span></td>
<td style="text-align:right" class="cRS22 lm" cid="1" uid="22" name="cRS22" type="datavalue"><span tabIndex="-1" class="textItem" ctx="6:5:3">123</span></td>
</tr>
<tr>
<td class="cRS20 lc" cid="0" uid="20" name="cRS20" type="datavalue"><span tabIndex="-1" class="textItem" ctx="7:8:3">Element3</span></td>
<td style="text-align:right" class="cRS22 lm" cid="1" uid="22" name="cRS22" type="datavalue"><span tabIndex="-1" class="textItem" ctx="8:7:3">123</span></td>
</tr>
</table>
私は手動でアルバロの例からテーブルを複製するために、テーブルを更新:
<link rel='stylesheet' href='http://alvaroveliz.github.io/aCollapTable/stylesheets/app.css' />
<script type="text/javascript" src="http://alvaroveliz.github.io/aCollapTable/javascripts/jquery.min.js"></script>
<script type="text/javascript" src="http://alvaroveliz.github.io/aCollapTable/javascripts/jquery.aCollapTable.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.collaptable').aCollapTable({
startCollapsed: true,
addColumn: false,
plusButton: '<span class="icon-plus-circle"></span>',
minusButton: '<span class="icon-minus-circle"></span>'
});
});
</script>
<table style="border-collapse:collapse;" class="ls collaptable table" LID="exampleRS" cellpadding="0">
<tr>
<td class="cRS10 lt" cid="0" uid="10" name="cRS10" type="columnTitle"><span tabIndex="0" class="textItem" ctx="1">Header</span></td>
<td class="cRS12 lt" cid="1" uid="12" name="cRS12" type="columnTitle"><span tabIndex="-1" class="textItem" ctx="2">Value</span></td>
</tr>
<tr data-id="1" data-parent="">
<td class="cRS15 oh" cid="0" uid="15" name="cRS15" type="section"><span tabIndex="-1" class="textItem" ctx="3">Parent1</span></td>
<td style="text-align:right" class="cRS17 oh" cid="1" uid="17" name="cRS17" type="section"><span tabIndex="-1" class="textItem" ctx="4:3">123</span></td>
</tr>
<tr data-id="2" data-parent="1">
<td class="cRS20 lc" cid="0" uid="20" name="cRS20" type="datavalue"><span tabIndex="-1" class="textItem" ctx="5:6:3">Element2</span></td>
<td style="text-align:right" class="cRS22 lm" cid="1" uid="22" name="cRS22" type="datavalue"><span tabIndex="-1" class="textItem" ctx="6:5:3">123</span></td>
</tr>
<tr data-id="3" data-parent="1">
<td class="cRS20 lc" cid="0" uid="20" name="cRS20" type="datavalue"><span tabIndex="-1" class="textItem" ctx="7:8:3">Element3</span></td>
<td style="text-align:right" class="cRS22 lm" cid="1" uid="22" name="cRS22" type="datavalue"><span tabIndex="-1" class="textItem" ctx="8:7:3">123</span></td>
</tr>
</table>
元のテーブルから、クラスのdata-idとdata-parentを追加するタグを識別できる唯一の方法は、子タグにアクセスすることであり、それには 'ああ'が含まれています親行に格納され、 'lc'が含まれている場合は子行です。
出発点として、私はテーブル内のすべての 'tr'をループし、 'data-id'を割り当てようとしました。そして、 'tr'に 'lc'の 'td'クラスを'データ - 親'。これは私が試みたものですが、私は不足しています。
<link rel='stylesheet' href='http://alvaroveliz.github.io/aCollapTable/stylesheets/app.css' />
<script type="text/javascript" src="http://alvaroveliz.github.io/aCollapTable/javascripts/jquery.min.js"></script>
<script type="text/javascript" src="http://alvaroveliz.github.io/aCollapTable/javascripts/jquery.aCollapTable.js"></script>
<script>
$(document).ready(function(){
\t
\t $("[lid='exampleRS'] tr").each(function(){
\t \t $(this).attr("data-id", $(this).index());
\t });
\t $("[lid='exampleRS'] td.lc").each(function(){
\t \t $(this).closest('tr').attr("data-parent", $(this).closest('tr').find('.data-id').text());
\t });
});
</script>
<table style="border-collapse:collapse;" class="ls" LID="exampleRS" cellpadding="0">
<tr>
<td class="cRS10 lt" cid="0" uid="10" name="cRS10" type="columnTitle"><span tabIndex="0" class="textItem" ctx="1">Header</span></td>
<td class="cRS12 lt" cid="1" uid="12" name="cRS12" type="columnTitle"><span tabIndex="-1" class="textItem" ctx="2">Value</span></td>
</tr>
<tr>
<td class="cRS15 oh" cid="0" uid="15" name="cRS15" type="section"><span tabIndex="-1" class="textItem" ctx="3">Parent1</span></td>
<td style="text-align:right" class="cRS17 oh" cid="1" uid="17" name="cRS17" type="section"><span tabIndex="-1" class="textItem" ctx="4:3">123</span></td>
</tr>
<tr>
<td class="cRS20 lc" cid="0" uid="20" name="cRS20" type="datavalue"><span tabIndex="-1" class="textItem" ctx="5:6:3">Element2</span></td>
<td style="text-align:right" class="cRS22 lm" cid="1" uid="22" name="cRS22" type="datavalue"><span tabIndex="-1" class="textItem" ctx="6:5:3">123</span></td>
</tr>
<tr>
<td class="cRS20 lc" cid="0" uid="20" name="cRS20" type="datavalue"><span tabIndex="-1" class="textItem" ctx="7:8:3">Element3</span></td>
<td style="text-align:right" class="cRS22 lm" cid="1" uid="22" name="cRS22" type="datavalue"><span tabIndex="-1" class="textItem" ctx="8:7:3">123</span></td>
</tr>
</table>
前方に移動し、次のステップは、素晴らしいことだとどのような援助。
ブリリアですnt、ありがとう:)どのように各親の下の階層のためにこれを調整するつもりですか?手動でモックアップして、目的の効果を作り出す:https://jsfiddle.net/nusy2ay2/ – ashleh
@ashleh https://jsfiddle.net/nusy2ay2/3/ –