0

私はプロトタイプでこのようなことをしたいです:

onSuccess: function(transport) {
    template = transport.responseText.evalJSON();
    form = event.up('form');
    form.select('.audio_channels').update(template.channelHtml);
}

フォームタグはテーブルであり、その内容を置き換えたいと思います。channelHtmlHTML<tr>タグの文字列です。

私が得ている:

TypeError:オブジェクト[object HTMLTableElement]にはメソッド'update'がありません

だから私はそれが拡張オブジェクトではないと思いElement.extend(form.select('audio_channels'))、空のオブジェクトを返す、を試しました。それから私は試しform.select('.audio_channels').innerHTML(template.channelHtml)てみて、私は得TypeError: Object [object HTMLTableElement] has no method 'innerHTML'ます。次に、tbody要素を試してみます。[object HTMLTableSectionElement] has no method 'innerHtml'

これはうまくいくはずだと私には思えます。form.select('audio_channels')正しいDOM要素を返しています。ajax呼び出しに基づいてテーブルのコンテンツを設定するには何をする必要がありますか?

4

1 に答える 1

0

最後の行を次のように置き換えます

form.select('.audio_channels').each(function(node){
  node.update(template.channelHtml);
});

これにより、元のコードのように1項目の配列ではなく、実際の要素でコードが実行されます。

于 2012-08-07T19:15:00.510 に答える