3

私のページには次のようなテーブルがあります。

 <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でそれを行うにはどうすればよいですか?

4

5 に答える 5

2

これを試して:

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

フィドル

于 2012-12-14T14:17:14.627 に答える
1
jQuery('td a').click(function(){
    $(this).parents("tr").after($('#change'));
});

http://jsfiddle.net/6AMnV/

于 2012-12-14T14:19:58.223 に答える
1

event delegationを使用するため、複数ではなくイベント リスナーのみをミックスに追加します。

// 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"));
});​​​​​​​​
于 2012-12-14T14:24:09.393 に答える
0

これを試してください(テストされていません)

jQuery('td a').each(function(){
    var j = jQuery(this);
    jTr = j.closest('table').find('#change');
    j.closest('tr').after(jTr);
});
于 2012-12-14T14:12:31.143 に答える
0
$("a").click( function(){
  var $change = $('#change');
  $('#change').remove();  
  $(this).closest('tr').after($change);
});​
于 2012-12-14T14:23:13.270 に答える