我需要你帮助处理我正在工作的事情。我创建了一个HTML
表,其中有7个类别(7 tr
' s)。每个tr
都有2个td
,其中一个是类别名称,另一个是输入复选框。因此,如果用户选择例如1,3,7(第一类的第一个复选框,第三类的第三个复选框等),将创建javascript
数组,如order = [1, 3, 7];
。
所以我想(在页面重新加载时)使用tr
脚本在表格的顶部移动这些选定的jQuery
。
HTML表格:
<tbody id="news_body">
<tr id="1">
<td class="categories">World</td>
<td class="category_enabled" style="float: right;"><input type="checkbox" value="1"/></td>
</tr>
<tr id="2">
<td class="categories">Sports</td>
<td class="category_enabled" style="float: right;"><input type="checkbox" value="2"/></td>
</tr>
.
.
.
<tr id="7">
<td class="categories">Economy</td>
<td class="category_enabled" style="float: right;"><input type="checkbox" value="7"/></td>
</tr>
</tbody>
我已经尝试了这一点,但tr
显示在表格底部:
var order = [1, 3, 7];
$.each(order, function(){
$("#news_body").append($("#" + this));
})
任何想法都会有所帮助..
解决方案(更新):
$.each(categories, function(){
$("#news_table").append($("#" + this));
})
答案 0 :(得分:1)
您要使用的是prepend()。 这会将elem插入表格的开头。
var order = [1, 3, 7];
$.each(order, function(index, value){
$("#news_body").prepend($("#" + this));
})
答案 1 :(得分:1)
尝试此审核
jQuery(document).ready(function($) {
var order = [1, 3, 7];
reverse_order=order.reverse();// reversing array so when prepending, checkboxes will display in right order
$.each(reverse_order, function(key,value){
var selected=$("#" + value);// keep the original tr
$("#" + value).remove();// remove from table
$("#news_body").prepend(selected);// then prepend it
})