javascript - 根据子类/内容更改 DIV 的颜色

标签 javascript jquery html

我想制作 <span>人 1 的背景颜色与人 2 的颜色不同。

这个方法我试过了,没用:

$('span.Message').each(function() {

  if ($(this).find('span.person1').length > 0) {
    $("span.person1").parent().css("background", "yellow");
  } else {
    $("span.person1").parent().css("background", "red");
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="Message">
    <img alt="" src="images/person1.png">
    <span class="person1">Person 1 Name</span>: Hi, how are you?
</span>

<span class="Message">
    <img alt="" src="images/person2.png">
    <span class="person2">Person 2 Name</span>: Good, how are you?
</span>

最佳答案

您应该在 if() { } else { } 中使用 $(this) 而不是 span.person1,否则您'总是选择相同的元素,无论其内容如何。

您可以简单地在 each() 函数中设置 $(this).css(),并使用三元运算符来选择颜色,具体取决于find()函数的长度如下:

$('span.Message').each(function() {
  var bg = ($(this).find('span.person1').length) ? 'yellow' : 'red';
  $(this).css('background', bg);
});
span.Message {
display: block;
height: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<span class="Message">
  <img alt="" src="images/person1.png">
  <span class="person1">Person 1 Name</span>: Hi, how are you?
</span>

<span class="Message">
  <img alt="" src="images/person2.png">
  <span class="person2">Person 2 Name</span>: Good, how are you?
</span>

关于javascript - 根据子类/内容更改 DIV 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45619672/

相关文章:

jquery - if css(background-position) jquery 条件语句

javascript - 如何在 XMLHttpRequest 中发出 GET 请求?

javascript - 如何从 react 日期选择器中删除此返回日期中的所有额外数字?

javascript - 需要帮助重构此 Javascript if/else 语句

javascript - MVC4/JS/AJAX : Html. 原始输出替换 HTML View 中 href 标签中的内容

html - 旋转文本的 CSS 定位和对齐

html - 关于html rgb颜色

javascript - 跨站脚本?

php - WordPress : How to make tablesort work with Genesis

javascript - IE9 不反射(reflect) javascript 对页面的更改