2017-12-15 11 views
2

forループ内のテーブルにすべてのタグを追加する必要がありますが、ループとreplaceWithが機能しません。​​をforループのJQueryでreplaceWithを使用して追加する方法

それぞれのループを反復する方法とreplacewithを追加するか、ターゲットに追加しますか?

for (z = 0; z < json[x].category[y].item.length; z++) { 
    html += '<td id="'+ json[x].category[y].item[z].idCat +'">'; 
    html += '<div class="new-value">'+ json[x].category[y].item[z].value +'</div>'; 
    html += '</td>'; 
} 
$('table tr td.new').replaceWith(html); 

答えて

1

以下のように実行します - あなたは、コードの下からチェックとして、それは何の問題、大丈夫に動作しない

count = 0; 
for (z = 0; z < json[x].category[y].item.length; z++) { 
    count++; 
    var html = ''; //define html variable first 
    html += '<td id="'+ json[x].category[y].item[z].idCat +'">'; 
    html += '<div class="new-value">'+ json[x].category[y].item[z].value +'</div>'; 
    html += '</td>'; 
    $('table tr td.new:eq("'+count+'")').html(html); // use .html() 
} 
+1

'var html = '''はループの先頭に置く必要があります。 – CronosS

+1

ありがとう、今、あなたはループの外にカウンターを置く必要があります。カウント= 0; put count ++のための内部;代わりに:eq( "'+ z +'")私は.eq(count)を書き、私のためにうまく動作します!おかげでたくさんの – user3309614

1

var html = ''; 
 
for (z = 0; z < 3; z++) { 
 
    html += '<td id="tdnew_' + z + '">'; 
 
    html += '<div class="new-value">NEW-'+ z +'</div>'; 
 
    html += '</td>'; 
 
} 
 
$('table tr td.new').replaceWith(html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<table border="1"><tr> 
 
<td>OLD-9</td> 
 
<td>OLD-8</td> 
 
<td class="new">OLD7</td> 
 
<td class="new">OLD8</td> 
 
</tr></table>

だから私は2つの理由があるかもしれないと思われます。

ケース1

<table>はまだありません前に、あなたのjavascriptのコードが実行され、これjQueryのセレクタ$('table tr td.new')は実際に何を指していません。

シンプルなスクリプトが実行されたときは本当にtd.newが存在しているかどうかを確認するために、replaceWitdh()コード行の前に次のコードを追加することができます。

alert($('table tr td.new').length) 

それは、手段を0に警告を発した場合、テーブルはまだありませんスクリプトが実行されているとき

ケース2

あなたのJSONはあなたのコードが動作しない可能おり、いくつかの無効な文字が含まれる場合がありますが、この場合、あなたは、私は信じているいくつかのエラーコンソールが表示されます。

+0

ありがとう、テーブルが存在し、ループはすべての単一のtd.newのループのすべてのtdを追加します。あなたのソリューションは私のようなものですが、仕事はありません。 – user3309614

関連する問題