1

私はこの問題を抱えています:

$(document).ready(function() {                                 
    $('#buttonTest').click(function() {                        
        $.get('/WebTestProject/ServletEsempio', function(responseJson) {         
            var $table = $('<table>').appendTo($('#result')); 
            $.each(responseJson, function(index, product) {    
                $('<tr>').appendTo($table)                     
                    .append($('<td>').text(index))       
                    .append($('<td>').text(product))    
            });
        });
    });
});

このコードはサーブレットの呼び出しには問題ありませんが、TAGを閉じる方法がわかりません。出来ますか?

みんなに感謝します。

4

3 に答える 3

7

この方法で jQuery を使用して要素を作成すると、それらは自動的に作成されて閉じられます。ただし、jQuery のドキュメントでさえ、明示的に閉じることを推奨しています。

クロスプラットフォームの互換性を確保するには、スニペットの形式が適切である必要があります。他の要素を含むことができるタグは、終了タグと組み合わせる必要があります。

すなわち:$('<table />');または$('<table></table>');

要素を含むことができないタグは、クイック クローズされている場合とされていない場合があります。

すなわち:$('<img />');または$('<input>');

ソース: http://api.jquery.com/jQuery/#creating-new-elements

于 2012-12-17T15:33:02.163 に答える
1

作成している要素を参照していると仮定すると、jQueryはjavascriptsの関数にtable依存して要素を作成するため、要素は自動的に閉じられます。createElement()

ドキュメントから:

パラメータに単一のタグ(オプションの終了タグまたはクイック終了)がある場合—$('<img />')または$('<img>')$('<a></a>')または$('<a>')— jQueryは、ネイティブJavaScriptcreateElement()関数を使用して要素を作成します。

于 2012-12-17T15:30:49.120 に答える
1

jQUery ドク (http://api.jquery.com/jQuery/) から:

新しい要素の作成

文字列がパラメータとして $() に渡されると、jQuery はその文字列が HTML のように見えるかどうか (つまり、文字列内のどこかにあるかどうか) を調べます。そうでない場合、上記で説明したように、文字列はセレクター式として解釈されます。ただし、文字列が HTML スニペットのように見える場合、jQuery は HTML で記述されているとおりに新しい DOM 要素を作成しようとします。次に、これらの要素を参照する jQuery オブジェクトが作成されて返されます。このオブジェクトに対して通常の jQuery メソッドを実行できます: $('My new text

').appendTo('本体');

上記の例のように、HTML が属性のない単一のタグよりも複雑な場合、要素の実際の作成はブラウザーの innerHTML メカニズムによって処理されます。ほとんどの場合、jQuery は新しい要素を作成し、要素の innerHTML プロパティを、渡された HTML スニペットに設定します。パラメーターに単一のタグ (オプションの終了タグまたはクイック終了) がある場合 — $('') または$('')、$('') または $('') — jQuery はネイティブ JavaScript createElement() 関数を使用して要素を作成します。

于 2012-12-17T15:33:34.920 に答える