2016-04-08 5 views
0

テーブルIDが異なる2つのHTMLテーブルがあり、テーブルに行を追加すると、常に 'leaderboard'テーブルに追加されます。 leaderSuccessが 'leaderboard'テーブルに書き込む関数とtitalSucessが 'titaltown'テーブルに書き込む関数を区別するにはどうすればよいですか?2つの異なるHTMLテーブルに行を追加するjquery関数

============JQUERY=========== 
function leaderSuccess(results) { 
    var numItemsRead = results.length; 
    var $tableBody = $('<tbody></tbody>');   
    for (var i = 0 ; i < results.length ; i++) { 
     var leaderboard = results[i]; 
     var $row = $('<tr></tr>');      
     $row.append($('<td></td>').text(leaderboard.owner)); 
     $row.append($('<td></td>').text(leaderboard.points)); 
     $tableBody.append($row);      

    } 

    $('thead').after($tableBody);      


} 



function titalSuccess(results) { 
    var numItemsRead = results.length;  
    var $tableBody = $('<tbody></tbody>');   
    for (var i = 0 ; i < results.length ; i++) { 
     var titals = results[i]; 
     var $row = $('<tr></tr>');      
     $row.append($('<td></td>').text(titals.owner)); 
     $row.append($('<td></td>').text(titals.titals)); 
     $tableBody.append($row);      
    } 

    $('thead').after($tableBody);      



=========HTML============ 
<table id="leaderboard"> 
    <thead><tr><th>Owner</th><th>Points</th></tr></thead> 
    <tbody></tbody> 
</table> 

<table id="titletown"> 
    <thead><tr><th>Owner</th><th>Titals</th></tr></thead> 
    <tbody></tbody> 
</table>  

function leaderEventHandler(event) { 
     leaderBoard 
      .orderByDescending('points') 
      .read() 
      .then(leaderSuccess, failure); 
} 

function titalEventHandler(event) { 
     titals 
      .orderByDescending('titals') 
      .read() 
      .then(titalSuccess, failure); 
    }    
+1

それぞれの関数を呼び出すテーブルに関連するイベントはありません。これらの機能を引き起こすのは何ですか? – DinoMyte

+0

なぜあなたはすでに存在する 'tbody'要素を書いていますか?単純に行を追加することはできませんか? – isherwood

+0

@isherwoodそれは良い質問ですが、目的が達成されたかどうかわからなかった場合、既存のの内容を変更するか、htmlセクション –

答えて

1

ジャストテーブルそれは、それらの関数が呼び出されているところはっきりしていない

function leaderSuccess(results) { 
    var numItemsRead = results.length; 
    var $tableBody = $('<tbody></tbody>');   
    for (var i = 0 ; i < results.length ; i++) { 
     var leaderboard = results[i]; 
     var $row = $('<tr></tr>');      
     $row.append($('<td></td>').text(leaderboard.owner)); 
     $row.append($('<td></td>').text(leaderboard.points)); 
     $tableBody.append($row);      

    } 

    $('#leaderboard thead').after($tableBody); // append to id="leaderboard" table     

} 

function titalSuccess(results) { 
    var numItemsRead = results.length;  
    var $tableBody = $('<tbody></tbody>');   
    for (var i = 0 ; i < results.length ; i++) { 
     var titals = results[i]; 
     var $row = $('<tr></tr>');      
     $row.append($('<td></td>').text(titals.owner)); 
     $row.append($('<td></td>').text(titals.titals)); 
     $tableBody.append($row);      
    } 

    $('#titletown thead').after($tableBody); // append to id="titletown" table          
} 
+0

これは良い見えた、とにかく思った。リーダーボードのテーブルはうまく見えますが、titaltownテ​​ーブルは空です。 – dmdwild2016

+0

これらの関数を実行するコードを含める必要があります –

+0

私はオリジナルの投稿に2つの呼び出し関数を追加しました。関数LeadEventHandlerとtitalEventHandler – dmdwild2016

0

にHTMLを追加する際にIDを指定しますが、2番目の引数としてIDを渡すことができます。

function leaderSuccess(results, tableId) { 
    ... 
    $('#' + tableId).find('tbody').append(...); 
} 
+0

は、コメント内で読みやすいようにコードを整形するのに問題がありますが、各関数への呼び出しは、クリックが発生したときにreaderSuccessまたはtitalSuccessに読み込まれて渡されるclickイベントの別の関数から来ています場所 – dmdwild2016

関連する問題