0

以下のように、ボタンをクリックして動的テーブルを生成しています-

 $('.addRowButton').click(function () {

            ++counter;
            var index=counter-1;
            var newRowHtml =
                '<tr>' +
                '<td>' + counter +
                '</td>' +
                '<td><input name="b2bProductList[' + index+ '].productId" class="variant b2bTableInput" /></td>' +
                '<td align="center"><span id="pvDetails" class="pvDetails"></span></td>' +
                '<td><div class="img48" style="vertical-align: top;"><img src=""></td>'+
                '<td><input name="b2bProductList[' + index + '].quantity" class="qty b2bTableInput"/></td>' +
                '<td align="center"><span id="mrp" class="mrp"/></td>' +
                '<td align="center"><input id="totalPrice" readonly="readonly" class="totalPrice b2bTableInput" type="text"></td>' +
                '</tr>';
            $('#poTable').append(newRowHtml);

しかし、特定の列を自分で処理したいのですが、それをオーバーライドします。画像を表示する必要があり、この列でいくつかの属性を使用する必要がありますが、これは上記のコードには入れられません。どのようにオーバーライドすればよいですか。メインのテーブルでanytrまたはを宣言する場合、それらは静的に余分な行を占めています。行を動的に追加する際に特定の列を処理する特定の方法はありますか?td<table></table>

編集 - 画像のソースを設定する必要があります。ソース文字列は、Idテキスト ボックスのフォーカスアウトで非同期呼び出しを介して取得しています。src行の生成時にソースを設定できないため、フェッチした後に各列を一度に処理する必要があります。列は私のコードで言及されています

'<td><div class="img48" style="vertical-align: top;"><img src=""></td>'+

を設定する必要がありsrcます。これが私の問題を明確に伝えてくれることを願っています。

4

3 に答える 3

1

あなたが使用することができます

$('#myTable tr td::nth-child('+columnIndex+')')

列のインデックスがわかっている場合、またはその特定の td に一意のクラスを与えることができる場合

newRowHtml ='<tr>' + '<td class="someClass"></td> ... etc

そのクラスを選択します。

$('.someClass').each(function(){
    // Some other code
});

または、次のように行を追加することもできます。

var $row = $('<tr></tr>');
var $id = $('<td></td>').html(id);
var $someOtherfield = $('<td></td>').html(someOtherData);

$('#myTable').append($row.append($id).append($someOtherfield));

次に、変数 $someOtherfield を使用してアクセスし、作業します。

$someOtherfield.find('img').attr('src' , yourSource);
于 2013-02-11T13:25:37.973 に答える
0

特殊な colspan がない場合、特定の列のセルを選択する最も簡単な方法は、:nth-child()を使用することです。

$('#mytable td:nth-child('+columnIndex+')')
于 2013-02-11T13:15:55.173 に答える
0
var tds= $('#poTable').find("td:first");

最初の列が表示されます。

そして要素を反復する

tds.each(function(index){
//do your stuff here..
});

お役に立てれば..

于 2013-02-11T13:21:40.727 に答える