2017-09-18 25 views
1

テーブルの3番目の列に進捗バーがあります。進捗値にテーブルtdテキストを追加する方法

そして、各行の各進捗量を、各行の最初と2列の数字に置き換えたいとします。

どうすればjQueryでこれを行うことができますか?例えば

は:

私はまた、代わりにプログレスバーでの私の価値の4を置くプログレスバーに最大の代わりに30を載せていきたいと思います。ここで

は私のコードです:

<table border="1"> 
 
<tr> 
 
<td>30</td> 
 
<td>4</td> 
 
<td> <progress value="98" max="100"><div id="progress" class="graph"></div></progress></td> 
 
</tr> 
 

 
<tr> 
 
<td>20</td> 
 
<td>6</td> 
 
<td> <progress value="50" max="100"><div id="progress" class="graph"></div></progress></td> 
 
</tr> 
 

 

 
</table>

+0

あなたは例を与えることができますか?最初の行の数字は30と4です。進捗値はどうしますか? – mrid

+0

@mrid私は進捗バーにmaxの代わりに30を入れたいと思っています。 – aynaz

答えて

1

あなたが最初td:eq(2)を使用してprogress要素を選択してから最初のtdからの行のtd第二の要素とmaxプロパティ値のテキストにそのvalueを設定することができます列に並んでいる。

$("table tr").each(function() { 
 
    var progress = $(this).find('td:eq(2) progress'); 
 
    progress.val($(this).find('td:eq(1)').text()) 
 
    progress.prop('max', $(this).find('td:eq(0)').text()) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table border="1"> 
 
<tr> 
 
<td>30</td> 
 
<td>4</td> 
 
<td> <progress value="98" max="100"><div class="graph"></div></progress></td> 
 
</tr> 
 

 
<tr> 
 
<td>20</td> 
 
<td>6</td> 
 
<td> <progress value="50" max="100"><div class="graph"></div></progress></td> 
 
</tr> 
 
</table>

+0

ありがとうございます。 td:eq(0) – aynaz

+0

これは、インデックスhttps://api.jquery.com/eq-selector/で要素を選択するjqueryセレクタですが、この場合は 'nth-child'を使うこともできますが、 1から始まります。 –

+0

はい私は知っています。しかし、なぜあなたはeq(0)から最大を支えるのですか? – aynaz

0

あなたは、両方のテーブルの行で<div id="progress" ...>を持っています。

idは1ページで1回のみ使用してください。

したがって、idsを変更するか、単にクラスを使用してください。

$('#table1 tr').each(function(){ 
 
    var row = $(this); 
 
    var tds = row.find('td'); 
 
    tds[2].innerHTML = '<progress value="' + tds[1].innerHTML + '" max="' + tds[0].innerHTML + '"><div class="graph"></div></progress>'; 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table border="1" id="table1"> 
 
<tr> 
 
<td>30</td> 
 
<td>4</td> 
 
<td> </td> 
 
</tr> 
 

 
<tr> 
 
<td>20</td> 
 
<td>6</td> 
 
<td> </td> 
 
</tr> 
 

 

 
</table>

関連する問題