首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改某个条件下父div的颜色

问更改某个条件下父div的颜色
EN

Stack Overflow用户
提问于 2017-07-01 19:56:06
回答 4查看 651关注 0票数 0

我有一个html代码,如下所示

代码语言:javascript
复制
<div class="class1">
    <div class="class2">
        <span class="span1"></span>

如果class="span1“的跨度在开始标记和结束标记之间没有值,我想用class="class1”更改div的颜色。

然而,span在加载后被javascript填充,所以我应该用JS还是CSS来改变颜色?有人能告诉我怎么做吗?

我没有任何示例代码可供显示,因为我不确定如何开始

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-01 20:03:59

要确定指定元素的标记之间是否没有任何内容,请使用jQuery提供的html()函数。要更改父对象的样式,请使用parent()和css()函数。要等到DOM加载完成,请使用ready()函数。

​

代码语言:javascript
复制
$(document).ready(function() {
  if (!$('.span1').html()) {
    $('.span1').parent().css({ color: 'red' });
  }
})
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="class1">
  <div class="class2">text
    <span class="span1"></span>
  </div>
</div>

​

票数 1
EN

Stack Overflow用户

发布于 2017-07-01 20:03:32

代码语言:javascript
复制
document.getElementsByClassName("span1")[0].parentElement.parentElement.style.color = "green";
票数 0
EN

Stack Overflow用户

发布于 2017-07-01 20:04:18

你不能通过css来“往上走”,只能往下走,所以你必须用js来做到这一点。以下是som示例代码:

​

代码语言:javascript
复制
$(function(){
   $(".span1").each(function(){
      if($(this).html() == ""){
          $(this).closest(".class1").css("background-color", "red")
      }
   })
})
代码语言:javascript
复制
span{
  height: 10px;
  display: block
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="class1">
    <div class="class2">
        <span class="span1"></span>
    </div>
</div>
<div class="class1">
    <div class="class2">
        <span class="span1">filled</span>
    </div>
</div>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44860634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档