jQuery随笔记-遍历

一般来说我在需要写一个遍历的时候就先写一个html测试页面,用相同的结构来测试代码。如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery遍历测试</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
            $(document).ready(function() {
                $(".elan").css("font-weight", "bold");
                $(".elan").bind("click", this, function() {
                    $(this).css("font-weight", "normal");
                    $(this).parent().parent().parent().parent().prev().css("font-weight", "normal");
                });
                $(".elan-top").css("font-weight", "bold");
                $(".elan-top").bind("click", this, function() {
                    $(this).css("color", "green");
                    $(this).parent().children("td").children("table").children("tbody").children("tr").children(".elan").css("color", "green");
                });
            });
            function tdonclick(obj) {
            $(obj).parent().parent().parent().parent().prev().css("background-color", "red");
            }
        </script>
</head>
<body>
<table>
  <tr>
    <td class="elan-top">父表(1,1)</td>
    <td><table>
        <tr>
          <td onClick="tdonclick(this);">子表(1,1)</td>
        </tr>
        <tr>
          <td class="elan">子表(1,2)</td>
        </tr>
      </table></td>
  </tr>
  <tr>
    <td class="elan-top">父表(2,1)</td>
    <td><table>
        <tr>
          <td onClick="tdonclick(this);">子表(2,1)</td>
        </tr>
        <tr>
          <td class="elan">子表(2,2)</td>
        </tr>
      </table></td>
  </tr>
</table>
</body>
</html>

上面的代码要实现的效果就是点击每个“子表(*,2)”元素时,自己和同行的“父表(*,1)”粗体字变为普通字体;点击“父表(*,1)”则自己和同行的class=“elan”的子表元素变为绿色;点击“子表(*,1)”元素时,“父表(*,1)”元素背景色变为红色。

猛的一看初学者肯定会觉得上面所有代码里面都多了一层遍历,其实jQuery的遍历是根据页面DOM进行的,这也是我们经常会出错的地方,比如这里,表格其实还有一个<tbody></tobody>的元素节点,所以每次遍历到<tr></tr>的时候我们都要将这个加进去。

*这里推荐大家一种方便的查找遍历节点的方法,IE8+,Chrome浏览器都提供了开发者工具,我们可以先将网页结构编写好,然后在这里面进行调试,打开开发者工具(F12),那里面会将页面的DOM元素一一列出,只要细心查找,一般都能解决遍历的问题。如下图所示,是IE8中的开发者工具显示的页面结构,这里可以很容看到遍历的节点。

时间: 2024-12-27 11:28:54

jQuery随笔记-遍历的相关文章

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

JQuery学习笔记(1)

JQuery学习笔记(1) 认识JQuery 简介 JQuery是一个JavaScript库,语法简洁,有跨平台的兼容性,简化了开发人员遍历html文档.操作dom.处理事件.执行动画和开发Ajax的操作.理念是:写得少,做得多. 优点 1.轻量级.UglifyJS压缩后大小保持在30KB 2.选择器强大. 3.DOM操作封装. 4.可靠地事件处理机制. 5.完善的Ajax. 库类型 jquery.js(开发版) 约229kb,用于学习和开发. jquery.min.js(生产版) 约31kb,

jQuery学习笔记(2014年8月3日)事件委派

jQuery中的事件委托是通过 closest() 来完成的. closest() 方法获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上. 参考资料: jQuery 遍历 - closest() 方法http://www.w3school.com.cn/jquery/traversing_closest.asp jQuery学习笔记(2014年8月3日)事件委派

锋利的JQuery 学习笔记

第一章 认识JQuery ·页面加载事件(可以写多个ready())$(document).ready(function(){alert(“hello world”);}) ·链式操作:JQuery允许你在一句代码中操做任何与其相关联的元素,包括其子元素.父元素等//选择名称为myDiv的元素,为其自身添加css1的样式,然后再选择其所有子元素a,为其移除css2样式$(“#myDiv”).addClass(“css1″).children(“a”).removeClass(“css2″); ·

jQuery学习笔记——jQuery基础核心

代码风格 在jQuery程序中,不管是页面元素的选择.内置的功能函数,都是美元符号“$”来起始的.而这个“$”就是jQuery当中最重要且独有的对象:jQuery对象,所以我们在页面元素选择或执行功能函数的时候可以这么写: $(function () {}); //执行一个匿名函数 $(‘#box’);//进行执行的ID元素选择 $(‘#box’).css(‘color’, ‘red’);//执行功能函数由于$本身就是jQuery对象的缩写形式,那么也就是说上面的三段代码也可以写成如下形式:jQ

jquery 整理笔记(一)

this:表示当前的上下文对象是一个html对象,可以调用html对象所拥有的属性,方法 $(this),代表的上下文对象是一个jquery的上下文对象,可以调用jquery的方法和属性值. each: jquery遍历函数,为每个匹配元素执行函数. 可以遍历一维数组.多维数组.DOM, JSON等. find() 方法获得当前元素集合中每个元素的后代,通过选择器.jQuery 对象或元素来筛选.(不是普通的dom对象 是jquery封装过以后的对象) jquery dom 元素方法  dom包

Js脚本之jQuery学习笔记(1)

Js脚本之jQuery学习笔记(1) 一.javascript基础 单行注释 多行注释 /* */ 数据类型 数值型 字符串型 布尔型 空值 未定义值 转义字符 函数定义:1234567891011121314<head><script language="javascript"function test(m){var xixi="嘻嘻"alert("这是javascript")document.write(xixi + m)}

jQuery学习笔记--JqGrid相关操作 方法列表(上)

1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridid").jqGrid('getRowData', id); 3.刷新列表:$(refreshSelector).jqGrid('setGridParam', { url: ''), postData: ''}).trigger('reloadGrid'); 4.选中行:$("#jqGrid

jQuery学习笔记10:Ajax技术

jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. jQuery 采用了三层封装:最底层的封装方法为:$.ajax(),而通过这层封装了第二层有三种方法:.load().$.get()和$.post(),最高层是$.getScript()和$.getJSON()方法. 函数 描述 jQuery.ajax() 执行异步 HTTP (Ajax) 请求. .ajaxComplete() 当 Ajax 请求完成时注册要调用的处理程序.这是一个