jQuery addClass重写前一个元素

时间:2018-01-18 22:01:02

标签: javascript jquery html css

$('#naiveComments').append("<ul id='newList'></ul>").css("color", "white");
var keys = Object.keys(result);

for (var i = 0; i < keys.length; i++) {
    var key = keys[i];
    console.log(result[key]);

    if (result[key] == 1)
    {
        $("#newList").append("<li>" + key + "</li>").addClass("positive");
    }
    else if (result[key] == -1)
    {
        $("#newList").append("<li>" + key + "</li>").addClass("negative");
    }
}

我的result[key]字段存储值1,0和-1。基于此值,我想在当前<li> </li>元素中添加一个特定的类,但最后一个addClass将是最后一个。我知道在我的情况下,这为每个<li>元素设置了类,但是我无法找到一种方法可以将不同的类设置为不同的<li>元件。

2 个答案:

答案 0 :(得分:4)

您需要appendTo,而不是append

这会将一个类添加到#newList

$("#newList").append("<li>" + key + "</li>").addClass("positive");

这会为li中的新#newList添加一个类:

$("<li>" + key + "</li>").appendTo("#newList").addClass("positive");

答案 1 :(得分:0)

.append()的结果是您要追加的元素(因此您可以链接多个追加),而不是您添加的元素。您需要创建新元素作为参数,并将该类添加到该元素。

$("#newlist").append(
    $("<li>", {
        text: key,
        "class": "positive"
    })
);