日期:2014-05-16  浏览次数:20383 次

小菜写了一段jquery没有达到预想的结果,烦请高手帮忙
小编的项目里有个需求,当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>
jquery javascript

------解决方案--------------------
$(function(){
var $test = $(".test").text();
if($test == "Error"){
    $(".test").parent().siblings(".p_info").css("background-color","#000");
}
});
------解决方案--------------------
1、var $test = $(".test").text(); 改成var test = $(".test").text();
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中$这个符号是什么意思。你的逻辑很混乱
------解决方案--------------------
$this  这个...这个...实在是理解不了,不知道怎么写成这样,$test 变量名被命名成这样子了,你要搞清楚$,它到底是干嘛的,有什么作用,出错了,都不知道是为什么,不出错下次看都不会区分,不小心还以为是个构造函数呢...
------解决方案--------------------