1

これは私のjquery関数です

var status; 
$('.status').click(function(e) {
     status= $(this).attr('id');                    
     //$('#test').html('<p>Scrolled: '+ status +'</p>');                
     callAjax();
     display();
});  

上記のこの関数は、クリックされたハイパー参照の ID を取得し、それを変数に格納します。他の関数を呼び出します。

 var id = [];
 var values = [];
 function callAjax(){            
     id = [];
     values = [];
     $("#"+ status +"> td").each(function(index){                
     id.push($(this).attr("id"))
     values.push($(this).text());
     //alert($(this).attr("id")+" "+$(this).text());                          
  });           
}

上記のこの関数は、行からすべての値を取得し、配列に格納します。この配列値を使用して、新しいテーブルを作成し、クリックされたハイパーリンクの下に表示します (その div はステータス変数に格納されます)。

  function display(){               
            $("#"+status).append('<table id="newtable" border="1"> <tr> <td>'+values[0]+'</td><td>'+values[1]+'</td></tr></table>');
  }

初めてテーブルを追加するときはdisplay()関数で正常に機能しますが、もう一度リンクをクリックすると、もう1つのテーブルが追加されます。

出力

ここに画像の説明を入力

ここで、最初にリンクをクリックするとテーブルが正しく表示されますが、同じリンクをクリックすると同じテーブルが追加され、2番目の問題は、他のリンクをクリックすると最初のテーブルが消えるはずです。

ヘルプ...

4

3 に答える 3

2

これを試してみてください

function display(){ 
       $("#newtable").remove();   //removes table tag        
    $("#"+status).append('<table id="newtable" border="1"> <tr> <td>'+values[0]+'</td>                             <td>'+values[1]+'</td></tr></table>');
    }
于 2013-04-05T11:42:06.843 に答える
1

$("#"+status)を追加する前にクリアします。

 function display(){       
 $("#"+status).clear();      
 $("#"+status).append('<table id="newtable" border="1">
               <tr> <td>'+values[0]+'</td><td>'+values[1]+'</td></tr></table>');
        }

または@juhanaがコメントで言及したように

  function display(){       
     $("#"+status).html('<table id="newtable" border="1">
               <tr> <td>'+values[0]+'</td><td>'+values[1]+'</td></tr></table>');
            }
于 2013-04-05T11:37:31.977 に答える
0

最初に div をクリアして div.append を追加します。ex:in div には text1 が含まれています。つまり、test2 を追加すると、テスト 1 が追加されます。test2 のように、賢明な u jsust をクリアして値を追加します。

 function display(){   
                $("#"+status).empty();          
                $("#"+status).append('<table id="newtable" border="1"> <tr> <td>'+values[0]+'</td><td>'+values[1]+'</td></tr></table>');
            }
于 2013-04-05T11:41:18.560 に答える