我想更改表中两行的顺序.
我有这个代码:
console.log(position.parent().parent().prev()); console.log(position.parent().parent()); //I expected this line do the work,but no... $(this).parent().parent().prev().insertAfter($(this).parent().parent());
那是打印这个:
<tr> <td>Element 1</td> <td>…</td> <td>2008-02-02</td> <td class="jander" data-pos="0" data-category="1">…</td> </tr> <tr> <td>Element 2</td> <td>…</td> <td>2007-02-02</td> <td class="jander" data-pos="1" data-category="1">…</td> </tr>
任何的想法?
问候
哈维
解决方法
var row = $(this).closest('tr'); row.insertAfter( row.next() );
取决于您要定位的是哪一个.如果第一个具有单击处理程序,那么您需要上面的代码.
此外,closest()
[docs]方法是一种更安全的方法来瞄准祖先< tr>.这可能是问题所在.
如果你想要相反的方式,你的代码可以工作,但是再次使用.closest()代替.
$('span').click(function() { var row = $(this).closest('tr'); row.prev().insertAfter(row); });