我有一个像下面这样的HTML代码
<div class="class1">
<div class="class2">
<span class="span1"></span>
如果跨度为class =&#34; span1&#34;在开始和结束标签之间没有价值,我想用class =&#34; class1&#34;
更改div的颜色但是,加载后,span填充了javascript,所以我应该用JS或CSS更改颜色吗?任何人都可以告诉我一个方法吗?
我没有要显示的示例代码,因为我不确定如何启动
答案 0 :(得分:0)
document.getElementsByClassName("span1")[0].parentElement.parentElement.style.color = "green";
答案 1 :(得分:0)
要确定指定的元素是否在标记之间没有任何内容,请使用html()
提供的jQuery
函数。要更改父级的样式,请使用parent()
和css()
函数。要等到加载DOM,请使用ready()
函数。
$(document).ready(function() {
if (!$('.span1').html()) {
$('.span1').parent().css({ color: 'red' });
}
})
<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>
答案 2 :(得分:0)
你不能上去&#34;通过css,只有下来,所以你必须用js做。这是som示例代码:
$(function(){
$(".span1").each(function(){
if($(this).html() == ""){
$(this).closest(".class1").css("background-color", "red")
}
})
})
&#13;
span{
height: 10px;
display: block
}
&#13;
<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>
&#13;
答案 3 :(得分:0)
你可以通过jQuery使用不同的函数css(),parents(),html()来实现这个功能。
你需要将所有代码放在这个$(document).ready()中,所以这将在所有DOM数据加载后执行。
为此您只需使用以下代码:
Html代码:
<div class="class1">
<div class="class2">
Hello this is test message.
<span class="span1"></span>
</div>
</div>
和jquery代码:
$(document).ready(function(){
$(".span1").html().toString().length > 0 ? $(".span1").parents(".class1").css("background-color","red") : $(".class1").css("background-color","yellow");
});
首先我们检查长度是否为0,然后它将执行此
$(".span1").parents(".class1").css("background-color","red")
否则:
$(".class1").css("background-color","yellow");
这里我使用父母设置了背景颜色,您可以直接通过类名申请。
我希望这段代码可以帮到你。