我有一个表,可能有hidden
类的行:
<table id="sortme">
<tr>
<td>
<input type="hidden" name="pr" value="1" />
</td>
</tr>
<tr>
<td>
<input type="hidden" name="pr" value="7" />
</td>
</tr>
<tr>
<td class="hidden">
<input type="hidden" name="pr" value="4" />
</td>
</tr>
我有函数根据input
<script>
$(function() {
$('#sortme tr:has(input[name="pr"])').sort(function(a, b) {
return 1 * $(a).find("input[name='pr']").val() - 1 * $(b).find("input[name='pr']").val();
}).appendTo('#sortme');
});
</script>
我想只对行进行排序,而不使用 hidden
类。
我尝试添加:
|| tr.!(hasClass("hidden"))
这样的功能:
<script>
$(function() {
$('#sortme tr:has(input[name="pr"]) || tr.!(hasClass("hidden"))').sort(function(a, b) {
return 1 * $(a).find("input[name='pr']").val() - 1 * $(b).find("input[name='pr']").val();
}).appendTo('#sortme');
});
</script>
但那可能不是正确的语法。
我甚至不确定我是应该在那里,还是在appendTo
部分。
应该怎么做?
编辑:
更新的代码:
我先按类(非隐藏)排序,然后按数字排序(最低位):
$('#sortme tr:has(input[name="pr"]):not(.hidden)').sort(function(a, b) {
return 1 * $(a).find("input[name='pr']").val() - 1 * $(b).find("input[name='pr']").val();
}).appendTo('#sortme');
$('#sortme tr:has(input[name="pr"]).hidden').sort(function(a, b) {
return 1 * $(a).find("input[name='pr']").val() - 1 * $(b).find("input[name='pr']").val();
}).appendTo('#sortme');