jQueryで初めてテーブル操作とかをしてみたのでメモ。
実際に作ったものはこれ
要素の取得とかがまだこなれていない・・・。
jQuery部分はこんな感じ。※必要なところだけ抜粋。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var table =$('table#category_tbl'); var category = $('#category'); // 追加時の挙動 $('#btn_add').click(function(){ if(category.val()) { var id_td='<td></td>'; var category_td='<td>'+category.val()+'</td>'; var category_change_td='<td><input type="text" name="c_change"><button class="categoryChange">変更</button></td>'; var open_td='<td><input type="checkbox" name="open_flag" value="1" checked>公開する</td>'; var priority_td='<td><button class="up">up</button> <button class="down">down</button></td>'; var del_td='<td><button class="deleteButton">削除</button</td>'; var rowData ="<tr>"+id_td+category_td+category_change_td+open_td+priority_td+del_td+"</tr>"; $('table#category_tbl tr:last-child').after(rowData); category.val(''); } return false; }); // 削除 $('.deleteButton').live('click',function(event){ $(this).parent().parent().remove(); }); // 名の変更 $('.categoryChange').live('click',function(event){ if($(this).prev().val()) { $(this).parent().prev().text($(this).prev().val()); $(this).prev().val(''); } }); // up $('.up').live('click',function(event){ var own = $(this).parent().parent(); var pre = own.prev(); own.insertBefore(pre); }); // down $('.down').live('click',function(event){ var own = $(this).parent().parent(); var nex = own.next(); own.insertAfter(nex); }); }); </script>
html部分。※必要なところだけ抜粋。
<div class="cms-table"> <table id="category_tbl" border="1"> <tr> <th>id</th> <th>タグ名</th> <th>タグ名変更</th> <th>公開</th> <th>並び順</th> <th>削除</th> </tr> <tr> <td>2</td> <td>人気</td> <td><input type="text" name="c_change"/><button class="categoryChange">変更</button></td> <td><input type="checkbox" name="open_flag" value="1" checked/>公開する</td> <td><button class="up">up</button> <button class="down">down</button></td> <td><button class="deleteButton">削除</button></td> </tr> <tr> <td>3</td> <td>シンプル</td> <td><input type="text" name="c_change"/><button class="categoryChange">変更</button></td> <td><input type="checkbox" name="open_flag" value="1" checked/>公開する</td> <td><button class="up">up</button> <button class="down">down</button></td> <td><button class="deleteButton">削除</button></td> </tr> </table> </div><!-- cms-table --> <div class="cms-btn-area"> タグ名:<input type="text" id="category" name="category"/> <button id="btn_add">仮追加</button> </div>
実際の利用では変更を確定するためにjQueryを使ってpostしてみたりする。
jQueryは便利だなー。
参考URL
2011-02-11 テーブル要素の追加と削除練習
【JavaScript】jQueryでテーブルを操作、編集