小编的项目里有个需求,当class为test的文本为“Error”的时候,父元素的同辈元素“p_info”的颜色为红色,按照需求我写了以下代码,可是并没有达到预想的结果,不知道哪里错了,烦请高手帮忙。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<style type="text/css">
<!--
.p_info { width:100px; height:30px; background:#396; }
-->
</style>
<script type="text/javascript" src="http://www.csdn.net/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function(){
var $test = $(".test").text();
if($test == "Error"){
$this.parent().siblings(".p_info").css("background","#000");
}
});
</script>
</head><body><div class="post">
<div class="post_info">
<div class="p_info"></div>
<div class="p_test">
<div class="test">Success</div>
</div>
</div>
</div><div class="post">
<div class="post_info">
<div class="p_info"></div>
<div class="p_test">
<div class="test">Error</div>
</div>
</div>
</div></body>
</html>
jqueryjavascript
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<style type="text/css">
<!--
.p_info { width:100px; height:30px; background:#396; }
-->
</style>
<script type="text/javascript" src="http://www.csdn.net/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function(){
var $test = $(".test").text();
if($test == "Error"){
$this.parent().siblings(".p_info").css("background","#000");
}
});
</script>
</head><body><div class="post">
<div class="post_info">
<div class="p_info"></div>
<div class="p_test">
<div class="test">Success</div>
</div>
</div>
</div><div class="post">
<div class="post_info">
<div class="p_info"></div>
<div class="p_test">
<div class="test">Error</div>
</div>
</div>
</div></body>
</html>
jqueryjavascript
var $test = $(".test").text();
if($test == "Error"){
$(".test").parent().siblings(".p_info").css("background-color","#000");
}
});
2、你有2个class为test的div..所以var $test = $(".test").text()是没有意义的
3、如果把上面那个success的div的class值换成别的话。可以用如下代码实现
$(function(){
var test = $(".test").text();
alert(test);
if(test == "Error"){
$(".test").parent().siblings(".p_info").css("background","#000");
}
});
4、好好理解一下jquery中$这个符号是什么意思。你的逻辑很混乱
$(".test:contains('Error')").parent().siblings(".p_info").css("background-color","#FF0000");
});
所以需要下面这样写:$(function(){$(".test").each(function() {
if($(this).text() == "Error"){
$(this).parent().siblings(".p_info").css("background","#000");
}
});});