9

次のようなものを使用せずに、新しく追加された DIV にクラスを追加しようとしています。

t.y.append('<div class="lol'+i+'"></div>');

これが私がやろうとしていることのより良い例です:

var t = this;

$(this.x).each(function(i, obj) {
    //append new div and add class too <div></div>
    t.y.append('<div></div>').addClass('lol'+i);
});

ページ読み込み HTML は次のようになります。

<div class=".slideButton0 .slideButton1 .slideButton2" id="sliderNav">
    <div></div>
    <div></div>
    <div></div>
</div>
4

7 に答える 7

15

を介して要素を追加して.appendも、jQuery オブジェクトのコンテキストは変更されません。

次のように記述できます。

$('<div></div>').appendTo(t.y).addClass('lol'+i);

また

$('<div></div>').addClass('lol'+i).appendTo(t.y);

(これらはどちらも同じことを行いますが、順序が異なるだけで、2 番目の方がより明確である可能性があります)

jQuery オブジェクトのコンテキストは、新しく作成された div になります。

于 2012-10-16T21:57:57.133 に答える
7
t.y.append('<div></div>').addClass('lol'+i);

する必要があります

t.y.append('<div></div>').find('div').addClass('lol'+i);

最初のケースでは、追加先のdivにクラスを追加しています..SOコンテキストは依然として親divであり、新しく追加されたdivではありません..

最初に親内でそれを見つけてから、クラスを追加する必要があります..

編集

最後に追加された要素にクラスを追加するだけの場合...親の最後のdivを見つけて、それにクラスを追加します..これにより、毎回すべてのdivにクラスを追加しないようになりますループで繰り返す..

t.y.append('<div></div>').find('div:last').addClass('lol'+i);
于 2012-10-16T21:51:29.090 に答える
4

これを試して:

t.y.append($('<div></div>').addClass('lol'+i));

フィドル: http://jsfiddle.net/gromer/QkTdq/

于 2012-10-16T21:53:01.333 に答える
2
var t = this;

$(this.x).each(function(i, obj) {
    //append new div and add class too <div></div>
    var d = $('<div />').addClass('lol' + i);
    t.y.append(d);
});
于 2012-10-16T21:54:25.310 に答える
1

問題は、append追加したばかりのものではなく、コンテナーを返すことです。後ではなくaddClass 前に行うだけですappend

var t = this;

$(this.x).each(function(i, obj) {
    //append new div and add class too <div></div>
    t.y.append($('<div></div>').addClass('lol'+i));
});

編集...または、言い換えれば、Gromerが言ったこととまったく同じです. 私も5分も打ち負かしてください。遅くなってきました。

于 2012-10-16T21:57:20.653 に答える
0

リスト項目の属性に番号を付ける理由については言及していませんclassが、実際にそれらを css に使用している場合は、:odd および :even css セレクター属性と、同等の奇数/偶数があることを忘れないでください。 jQuery セレクター。

http://www.w3.org/Style/Examples/007/evenodd.en.html
http://api.jquery.com/odd-selector/

于 2012-10-16T21:56:07.707 に答える