zoukankan      html  css  js  c++  java
  • jquey下eq()的使用注意事项

    写在开始的话:

    今天在公司路经同事工位,发现在写jquery代码,刚好遇见一个bug,于是驻足看了一会,发现了jq遍历方法中eq()的使用的一个容易犯错的地方。

    同事的代码大概意思是这样的:

    <div class="hover-div">
    			<p>1231</p>
    			<p>1231</p>
    		</div>
    
    		<div class="hover-div">
    			<p>1231</p>
    			<p>1231</p>
    		</div>
    
    		<div class="hover-div">
    			<p>1231</p>
    			<p>1231</p>
    		</div>
    
    		<div class="hover-div">
    			<p>1231</p>
    			<p>1231</p>
    		</div>
    
    		<div class="hover-div">
    			<p>1231</p>
    			<p>1231</p>
    </div>
    
    	<script type="text/javascript">
    		$(".hover-div").find("p").eq(0).css("background-color","red");
    	</script>
    

    他是想每行的首个"p"标签,背景颜色变为红色,可是效果是这样
    效果

    明显效果不对,他当时的代码的想法应该是想着代码的执行顺序是循环着,先取一个'hover_div',然后取内联元素中的'p'标签。

    其实不然,可以打印如下:

    console.log($(".hover-div").find("p"));
    

    打印效果:
    打印效果

    即,此代码执行过后选取了所有的'p'标签,然后遍历使用eq的时候就会,选取相应的元素,所以方法的理解和选用都是错误的,应该在选择器中使用相应的方法或者如此:

    		$(".hover-div").each(function(index, element) {
    			$(element).find("p").eq(0).css("background-color", "red");
    		});
    

    或者

    $(".hover-div p:first-child").css("background-color","red");
    

       
       
       

    友情链接:

    技术博客        简书主页

  • 相关阅读:
    如何管理和优化日益增长的代码复杂度?
    groupcache-readme-go
    shell脚本的桩
    软件的模块化开发
    ldd命令--查看命令依赖的库文件
    链接
    LDD命令--可执行文件依赖的库出现错误时
    开源日志系统 log4c 使用心得+总结
    SDOI2018R1划水记
    BZOJ1009:[HNOI2008]GT考试(AC自动机,矩乘DP)
  • 原文地址:https://www.cnblogs.com/tig666666/p/8562312.html
Copyright © 2011-2022 走看看