[英]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.