如何使用:nth-​​child()在使用JavaScript添加元素时使用不同的背景颜色

时间:2017-01-09 20:15:53

标签: javascript html css css-selectors

我刚刚发现了:nth-child()选择器,效果很好。当我在我的网站上显示div时,我希望能够为div更改背景颜色。 像这样在这里

<div class="background-color">Content</div> <!-- White background-color -->
<div class="background-color">Content</div> <!-- Black background-color -->
<div class="background-color">Content</div> <!-- White background-color -->
<div class="background-color">Content</div> <!-- Black background-color -->

等等。所有这些都很有效。我唯一的问题是,如果我通过JS函数添加一个新的div,它将不会交替background-color。它将始终具有白色背景颜色。在JS函数中,我添加了相同的CSS类和所有内容,但它仍然无效。

我有没有办法以正确的颜色显示用户添加的新div?

2 个答案:

答案 0 :(得分:2)

您可以将nth-child(even)用于此类应用程序:

.background-color {
    background-color: white;
}

.background-color:nth-child(even) {
    background-color: black;
    color: white;
}

https://jsfiddle.net/86nkhwkz/

每个孩子(假设他们都是班级background-color)将交替使用背景颜色。

答案 1 :(得分:1)

始终显示您的代码,以便我们进行修复。

function add() {
  var $d = $("<div>");
  $d.addClass("background-color").html("Content");
  $("#wrapper").append($d);
}
#wrapper > div {
  background-color: white;
  padding: 1em;
  color: red
}
#wrapper > div:nth-child(2n) {
  background-color: black
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrapper">
  <div class="background-color">Content</div>
  <div class="background-color">Content</div>
  <div class="background-color">Content</div>
  <div class="background-color">Content</div>
</div>
<button onclick="add()">Add</button>