先學30天jQuery再說之prevAll() 方法(part2)

prevAll() 方法

定义和用法

prevAll() 获得当前匹配元素集合中每个元素的前面的同胞元素,使用选择器进行筛选是可选的。

语法

.prevAll(selector)

參數 

参数 描述
selector 字符串值,包含用于匹配元素的选择器表达式。

详细说明

如果给定一个表示 DOM 元素集合的 jQuery 对象,.prevAll() 方法允许我们在 DOM 树中搜索这些元素前面的同胞元素,并用匹配元素构造一个新的 jQuery 对象。

该方法接受可选的选择器表达式,与我们向 $() 函数中传递的参数类型相同。如果应用这个选择器,则将通过检测元素是否匹配该选择器对元素进行筛选。

 栗子:

<ul>
   <li>list item 1</li>
   <li>list item 2</li>
   <li class="third-item">list item 3</li>
   <li>list item 4</li>
   <li>list item 5</li>
</ul>

<script>
  $('li.third-item').prevAll().css('background-color', 'red');
</script>

結果為:

栗子二:

  <style>
  div { width:70px; height:70px; background:#abc; 
        border:2px solid black; margin:10px; float:left; }
  div.before { border-color: red; }
  </style>
  <script type="text/javascript" src="/jquery/jquery.js"></script>
</head>

<body>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
<script>$("div:last").prevAll().addClass("before");</script>

 結果為:

小練習:

<!DOCTYPE html>
<html>

<head>
    <script src="https://code.jquery.com/jquery-latest.js"></script>
</head>
<style>
.bar {
	height:60px;
	width:100%;
	margin-top:60px;
}
.bar ul li {
	width:120px;
 list-style: none;
	height:60px;
	box-sizing:border-box;
	text-align:center;
	line-height:20px;
    float: left;
}
.bar ul li .comm_red{
	width:60px;
	height:20px;
	margin:0 auto;
}
.hs {
	background:#949494;
}
.cj {
	background:#7c97af;
}
.zj {
	background:#d5b32a;
}
.gj {
	background:#ec7e0f;
}
.mx {
	background:#db7973;
}
.nd {
	background:#8392da;
}
.zz {
	background:#f181f8;
}

.color_com {
	background:gray !important;
}
.com_sjx {
	 width: 0;
    height: 0;
    margin: auto;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
}
.bar ul li .hssjx{
    border-top: 12px solid #949494;
    
}
.sjx {
	border-top: 12px solid gray !important;
} 
.bar ul li .cjsjx {
	border-top: 12px solid #7c97af;
}
.bar ul li .zjsjx {
	border-top: 12px solid #d5b32a;
}
.bar ul li .gjsjx {
	border-top: 12px solid #ec7e0f;
}
.bar ul li .mxsjx {
	border-top: 12px solid #db7973;
}
.bar ul li .ndsjx {
	border-top: 12px solid #8392da;
}
.bar ul li .zzsjx {
	border-top: 12px solid #f181f8;
}
.bar ul li .comm_bar {
	width: 120px;
	height: 16px;
	margin-top: 20px;
	box-sizing: border-box;
}
.bar_gray {
	background:gray !important;
}
.bar_grayzz {
	background:gray;
	border-radius: 0 10px 10px 0;
}
.bar_grayzc{
	background:gray;
	border-radius: 10px 0 0 10px;
}
.bar ul li .comm_ba {
	width: 120px;
	height: 16px;
	margin-top: 20px;
	box-sizing: border-box;
	
}
.bar ul li .barone {	
	border-radius: 10px 0 0 10px;
	background: #949494;	
}
.bar ul li .bartwo {
	background: #7c97af;
}
.bar ul li .barthree {
	background:#d5b32a;
}
.bar ul li .barfour {
	background:#ec7e0f;
}
.bar ul li .barfive {
	background:#db7973;
}
.bar ul li .barsix {
	background:#8392da;
}
.bar ul li .barseven {
	background:#f181f8;
	border-radius: 0 10px 10px 0;
}
</style>
<body>

        <div class="bar">
                <ul>
                    <li>							
                        <div class="comm_red color_com hs">銀星会员
                            <div class="sjx com_sjx hssjx"></div>
                        </div>
                        <div class="comm_bar barone bar_grayzc bar_gray"></div>
                    </li>
                    <li>
                        <div class="color_com comm_red cj">玉星会员
                            <div class="sjx com_sjx cjsjx"></div>
                        </div>
                        <div class="comm_bar bar_gray bartwo"></div>
                    </li>
                    <li>
                        <div class="comm_red color_com  zj">黃金会员
                            <div class="com_sjx sjx zjsjx"></div>
                        </div>
                        <div class="comm_bar bar_gray barthree"></div>
                    </li>
                    <li>
                        <div class="comm_red color_com gj">鉆石会员
                            <div class="com_sjx sjx gjsjx"></div>
                        </div>
                        <div class="comm_bar bar_gray barfour"></div>
                    </li>
                    <li>
                        <div class="comm_red color_com mx">超級会员
                            <div class="com_sjx sjx mxsjx"></div>
                        </div>
                        <div class="comm_bar bar_gray barfive"></div>
                    </li>
                    <li>
                        <div class="comm_red color_com nd">年度会员
                            <div class="com_sjx sjx ndsjx"></div>
                        </div>
                        <div class="comm_bar bar_gray barsix"></div>
                    </li>
                    <li>
                        <div class="comm_red color_com zz">至尊会员
                            <div class="com_sjx sjx zzsjx"></div>
                        </div>
                        <div class="comm_bar bar_grayzz barseven bar_gray"></div>
                    </li>
                    
                </ul>
  <p class="year fr">年度会员</p>
						<p class="distance fr" id="text"></p>				
            </div>				


    <script>
 $(document).ready(function(){
        // var num = $("#num").text(); 
        var num = 20000; 
    	if(num>=0&&num<500){
    		var number = 500-num;
    		$("#text").html('距离銀星会员还差'+number+'积分');
			changeColor(0);
    	}
    	else if(num>=500&&num<1000){
    		var number = 1000-num;
    		$("#text").html('距离玉星会员还差'+number+'积分');
    		changeColor(1);
    	}
    	else if(num>=1000&&num<2000){
    		var number = 2000-num;
    		$("#text").html('距离黃金会员还差'+number+'积分');
    		changeColor(2);
    	}
    	else if(num>=2000&&num<5000){
    		var number = 5000-num;
    		$("#text").html('距离鉆石会员还差'+number+'积分');
    		changeColor(3);
    	}
    	else if(num>=5000&&num<10000){
    		var number = 10000-num;
    		$("#text").html('距离超級会员还差'+number+'积分');
    		changeColor(4);
    	} 
    	else if(num>=10000&&num<20000){
    		var number = 20000-num;
    		$("#text").html('距离至尊会员还差'+number+'积分');
    		changeColor(5);
    	} 
    	else{
    		$("#text").html('恭喜您成为至尊会员');
    		changeColor(6);
    	} 
		function changeColor(i){
			$(".bar").find("li").eq(i).prevAll("li").find(".comm_red").removeClass("color_com");
			$(".bar").find("li").eq(i).prevAll("li").find(".comm_red").children(".com_sjx").removeClass("sjx");
			$(".bar").find("li").eq(i).prevAll("li").find(".comm_red").siblings(".comm_bar").removeClass("bar_gray");
			$(".bar").find("li").eq(i).find(".comm_red").removeClass("color_com");
			$(".bar").find("li").eq(i).find(".comm_red").children(".com_sjx").removeClass("sjx");
			$(".bar").find("li").eq(i).find(".comm_red").siblings(".comm_bar").removeClass("bar_gray");
		}
    });
    </script>

</body>

</html>

結果為:

猜你喜欢

转载自blog.csdn.net/weixin_41406727/article/details/88873134