80

テーブルに行を追加しようとしてtbodyいます。しかし、私はそれを達成することに問題があります。まず、html ページからドロップダウンを変更すると、すべてが行われる関数が呼び出されます。HTML要素、テキスト、その他のものをtr含むすべての内部を含む文字列を作成しました。tdしかし、次を使用して、その生成された行をテーブルに追加しようとすると:

$(newRowContent).appendTo("#tblEntAttributes tbody");

エラーが発生しました。テーブルの名前は で、tblEntAttributesに追加しようとしていtbodyます。

実際に起こっていることは、jQuery がtblEntAttributeshtml 要素として取得できないことです。しかし、私はそれを使用してアクセスできますdocumemt.getElementById("tblEntAttributes");

tbodyテーブルに行を追加することでこれを達成する方法はありますか? たぶんバイパスか何か。

コード全体は次のとおりです。

var newRowContent = "<tr><td><input type=\"checkbox\" id=\"" + chkboxId + "\" value=\"" + chkboxValue + "\"></td><td>" + displayName + "</td><td>" + logicalName + "</td><td>" + dataType + "</td><td><input type=\"checkbox\" id=\"chkAllPrimaryAttrs\" name=\"chkAllPrimaryAttrs\" value=\"chkAllPrimaryAttrs\"></td><td><input type=\"checkbox\" id=\"chkAllPrimaryAttrs\" name=\"chkAllPrimaryAttrs\" value=\"chkAllPrimaryAttrs\"></td></tr>";

$("#tblEntAttributes tbody").append(newRowContent); 

言い忘れたことの 1 つは、このコードが記述されている関数が、実際には ajax 呼び出しの成功コールバック関数であることです。を使用してテーブルにアクセスできますdocument.getElementById("tblEntAttributes")が、何らかの理由$(#tblEntAttributes)で機能していないようです。

4

6 に答える 6

119

("#tblEntAttributes tbody")

する必要があります

$("#tblEntAttributes tbody").

正しい構文で要素を選択していません

両方の例を次に示します

$(newRowContent).appendTo($("#tblEntAttributes"));

$("#tblEntAttributes tbody").append(newRowContent);

作業 http://jsfiddle.net/xW4NZ/

于 2012-06-01T13:51:44.567 に答える
38

これを使って

$("#tblEntAttributes tbody").append(newRowContent);
于 2014-10-16T11:56:22.773 に答える
17

このような奇妙な問題に遭遇したことはありません!oO

何が問題だったのか知っていますか?$が機能していません。私はjQueryのように同じコードを試しましたがjQuery("#tblEntAttributes tbody").append(newRowContent);、それは魅力のように機能します!

なぜこの奇妙な問題が発生するのか分かりません!

于 2012-06-04T06:33:37.837 に答える
6

これは、あなたが言及したhtmlドロップダウンを使用したappendToバージョンです。「変更」に別の行を挿入します。

$('#dropdown').on( 'change', function(e) {
    $('#table').append('<tr><td>COL1</td><td>COL2</td></tr>');
});

あなたが遊ぶための例で。頑張ってください!

http://jsfiddle.net/xtHaF/12/

于 2012-06-01T14:21:43.783 に答える
3

@wireyが言ったように、うまくいくappendToはずですが、そうでない場合は、これを試すことができます:

$("#tblEntAttributes tbody").append(newRowContent);
于 2012-06-01T13:59:05.873 に答える