1

使用中に行が追加および削除される動的テーブルを作成しようとしています。後で参照するすべてのコンテナーに ID を設定する必要はありません。

たとえば、動的に追加された行の最後のセルに非表示の入力を追加したいとします。行には ID があります。最後のセルに ID がない場合、どうすれば dojo.place() を使用できますか?

var pmrCount = dojo.query("#pmhTable >tbody >tr").length;
var rowID = 'pmr_' + pmrCount;

var newPmrRow = 
    '<tr id="' + rowID + '">' +
        '<td>' + pmh + '</td>' +
        '<td>' + String(pmr.severity).charAt(0) + '</td>' + 
        '<td>' + pmr.customerName + '</td>' + 
        '<td>' + pmr.deviceType + '</td>' + 
        '<td>' + pmr.deviceModel + '</td>' +
        '<td>' + pmr.deviceSerial + '</td>' +
        '<td align="center"><a class="cancel-link"></a></td>' + 
    '</tr>';

//dojo.place(newPmrRow, dojo.query("#pmhTable >tbody"));

var newPmrHiddenInput = 
    '<input type="hidden" name="pmrs" value="'+ JSON.stringify(pmr)+ '">';

//dojo.query("#" + rowID + " td:last").place(newPmrHiddenInput);

コメントされた 2 行のコードは、私が関数コードに置き換えようとしているものです。これらは機能しません。他の構文エラーのように、エラー コンソールに警告が表示されません。ここからどこへ行くべきかわからない。

dojo.query() が NodeList を返し、place() が DOM ノードまたは ID を想定していることはわかっています。これを行う正しい方法は何ですか?

4

2 に答える 2

1

Nodelist に対する dojo/NodeList-dom 拡張機能を調べますNodeList の各要素をクエリ セレクターに基づいて要素に配置できます。AMD スタイルでは、次のようになります。

require(['dojo/dom-construct', 'dojo/NodeList', 'dojo/NodeList-dom', 'dojo/domReady!'], function (domConstruct, NodeList) {
    var nodes = new NodeList([domConstruct.toDom('<div>someContent</div>')]);
    nodes.place('#x');

});

ドキュメントを見て、これを行う簡単な方法がなかったことに少し驚いたので、これよりも良い方法があるかもしれません。

于 2013-10-16T12:17:05.617 に答える