2

次のコードを使用して、新しい div 内に div を動的に作成しています。

var obj = {
  name: 'item'
};

obj.html = jQuery('<div/>', { class: 'recommended' });
obj.html += jQuery('<div/>', { class: 'bestbuy' });

jQuery('<div/>', obj).appendTo('#wrapper');

したがって、基本的には次のようなものを作成する必要があります。

<div id="wrapper">
  <div name='item'>
    <div class="I_will_be_inside_obj"></div>
    <div class="I_will_also_be_inside_obj"></div>
  </div>
</div>

問題は、これが 1 つの追加された div でのみ機能することです。2 番目を追加しようとすると、次のようになります。

<div id="wrapper">
  <div name='item'>
    [object Object][object Object]
  </div>
</div>

理由とこれを修正する方法はありますか? 前もって感謝します。

4

2 に答える 2

3

これは、作成された dom フラグメントが要素でなければならないためです。あなたはこれを行うことができます:

jQuery('<div/>').addClass('I_will_be_inside_obj').appendTo('#wrapper');
jQuery('<div/>').addClass('I_will_also_be_inside_obj').appendTo('#wrapper');

また

var obj = { };
obj.html = jQuery('<div/>').addClass('I_will_be_inside_obj');
obj.html += jQuery('<div/>').addClass('I_will_also_be_inside_obj');
jQuery('#wrapper').html(obj.html);

2 つの div をラップする 1 つの div を作成する場合は、次を使用します。

var obj = { };
var div = $('<div/>').appendTo('#wrapper');
jQuery('<div/>').addClass('I_will_be_inside_obj').appendTo(div);
jQuery('<div/>').addClass('I_will_also_be_inside_obj').appendTo(div);
于 2013-03-18T12:33:31.477 に答える
0

jQuery が返すのは、配列のようなオブジェクトです。そのままでは使えません+=

この特定の例では、 を使用できますが.after()、呼び出している jQuery.after()に複数の要素が含まれている場合、すべての要素の後に引数のクローンが追加されることに注意してください。

var underConstruction;

underConstruction = jQuery('<div/>', { class: 'I_will_be_inside_obj' });
underConstruction.after(jQuery('<div/>', { class: 'I_will_also_be_inside_obj' }));

jQuery('<div/>').append(underConstruction).appendTo('#wrapper');
于 2013-03-18T12:42:40.387 に答える