随着JQuery移动

时间:2012-12-14 14:09:57

标签: jquery html-table

我的页面上有一个表格,如下所示:

 <table border="1">
    <tr>
        <td>first</td>
        <td><a href="#">first click</a></td>
     </tr>
     <tr>
         <td>second</td>
         <td><a href="#">second click</a></td>
     </tr>
     <tr>
         <td>third</td>
         <td><a href="#">third click</a></td>
     </tr>
     <tr id="change">
         <td colspan="2">
            <button>change</button>
          </td>
     </tr>
  </table>

当我点击链接时,我希望在点击的链接下移动'#change'。例如;当我点击“第一次点击”表这样的变化..

 <table border="1">
    <tr>
        <td>first</td>
        <td><a href="#">first click</a></td>
     </tr>
     <tr id="change">
         <td colspan="2">
            <button>change</button>
          </td>
     </tr>
     <tr>
         <td>second</td>
         <td><a href="#">second click</a></td>
     </tr>
     <tr>
         <td>third</td>
         <td><a href="#">third click</a></td>
     </tr>
  </table>

我怎样才能使用JQuery?

5 个答案:

答案 0 :(得分:2)

试试这个:

$('table tr td a').click(function () {
    $(this).closest('tr').after($('#change'));
});​

fiddle

答案 1 :(得分:1)

jQuery('td a').click(function(){
    $(this).parents("tr").after($('#change'));
});

http://jsfiddle.net/6AMnV/

答案 2 :(得分:1)

使用事件委派,因此只将事件监听器添加到混合而不是几个:

// Using Event Delegation only adds one event listener
​$("table").on("click", "a", function (event) {
    // Prevent any navigation or jumping to the top of the page
    event.preventDefault();
    // Find the closest <tr>, insert #change after it.
    $(this).closest("tr").after($("#change"));
});​​​​​​​​

答案 3 :(得分:0)

试试这个(未经测试的)

jQuery('td a').each(function(){
    var j = jQuery(this);
    jTr = j.closest('table').find('#change');
    j.closest('tr').after(jTr);
});

答案 4 :(得分:0)

$("a").click( function(){
  var $change = $('#change');
  $('#change').remove();  
  $(this).closest('tr').after($change);
});​