[英]jQuery addClass() to element generated after append()
我正在尝试将一个类添加到新附加的 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>
当您通过.append
附加元素时,它不会更改 jQuery 对象的上下文。
你可以这样写:
$('<div></div>').appendTo(ty).addClass('lol'+i);
要么
$('<div></div>').addClass('lol'+i).appendTo(ty);
(这些都做同样的事情,只是顺序不同,第二个可能更清楚)
jQuery 对象的上下文将是新创建的 div。
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);
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);
});
问题是append
返回容器而不是您刚刚附加到它的东西。 我只会在append
之前而不是之后执行addClass
:
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));
});
编辑...或者,换句话说,正是格罗默所说的。 也比我整整打了五分钟。 我越来越慢了。
您没有提到为什么要将class
属性编号到列表项,但是如果您实际上将它们用于 css,请不要忘记您有 :odd 和 :even css 选择器属性以及等效的odd/甚至 jQuery 选择器。
http://www.w3.org/Style/Examples/007/evenodd.en.html
http://api.jquery.com/odd-selector/
我没有找到类似的东西。 注意类属性!
$.each(obj, function (_index, item) {
resultContainer.append($('<li>', {
class: "list-group-item",
value: item.id,
text: item.permitHolderName || item.permitHolderId
}));
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.