将CSS中的样式应用于新附加的元素

Max*_*s S 8 html javascript css jquery

我动态地向父div添加一个元素.

$('.some_div').append("<li class="hi">hey!</li>")
Run Code Online (Sandbox Code Playgroud)

在我的CSS中,

.hi {
  color: white;
}
Run Code Online (Sandbox Code Playgroud)

但是,由于<li class="hi">动态添加,因此CSS中定义的样式似乎不适用于该元素.所以,

$('.some_div').append("<li class='hi'>hey!</li>")
$('li.hi').css({"color":"white"});
Run Code Online (Sandbox Code Playgroud)

实际上会做到这一点,但对我来说这似乎是多余的,因为样式已在CSS文件中定义.这是唯一的方法吗?

更新:

$('.some_div').append('<li style="color:white" >hey!</li>')
Run Code Online (Sandbox Code Playgroud)

上面的方法可行,但由于样式已在单独的CSS文件中定义,因此它仍然是多余的.我的问题是,是否有办法避免这种冗余.

在CSS中,

.some_div > li {
  font-size: 20px;
  background-color: 30px;
  margin-right: 2px;
}

.hi {
  color: white;
}
Run Code Online (Sandbox Code Playgroud)

当我添加一个新元素时,所有这些都不会应用($).append(),所以我问是否有办法应用样式表中已经定义的样式,而不必在css()函数中重新定义它们.

Hir*_*ral 6

你需要在这里逃避课程名称.

更改

$('.some_div').append("<li class="hi">hey!</li>");
Run Code Online (Sandbox Code Playgroud)

$('.some_div').append("<li class='hi'>hey!</li>");
Run Code Online (Sandbox Code Playgroud)

要么

$('.some_div').append("<li class=\"hi\">hey!</li>");
Run Code Online (Sandbox Code Playgroud)

DEMO在这里.

演示风格:

$('.some_div').append("<li style='color:green;'>hey!</li>");
Run Code Online (Sandbox Code Playgroud)

要么

$('.some_div').append("<li>hey!</li>").find("li:last").css("color","yellow");
Run Code Online (Sandbox Code Playgroud)

在这里演示.