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);

(它们都做同样的事情,只是顺序不同,第二个可能更清楚)

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 添加类 .. 所以上下文仍然是父 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));
});

编辑......或者,换句话说,正是格罗默所说的。也打败我整整五分钟。我越来越慢了。

于 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 回答
0

我没有找到这样的东西。注意类属性!

$.each(obj, function (_index, item) {
    resultContainer.append($('<li>', {
      class: "list-group-item",
      value: item.id,
      text: item.permitHolderName || item.permitHolderId
    }));
});
于 2020-05-04T00:31:39.193 回答