• jQuery 中的 DOM 操作


     
    DOM(Document Object Model—文档对象模型):一种与浏览器, 平台, 语言无关的接口, 使用该接口可以轻松地访问页面中所有的标准组件
     
      DOM 操作的分类:
    •DOM Core: DOM Core 并不专属于 JavaScript, 任何一种支持 DOM 的程序设计语言都可以使用它. 它的用途并非仅限于处理网页, 也可以用来处理任何一种是用标记语言编写出来的文档, 例如: XML
    •HTML DOM: 使用 JavaScript 和 DOM 为 HTML 文件编写脚本时, 有许多专属于 HTML-DOM 的属性
    •CSS-DOM:针对于 CSS 操作, 在 JavaScript 中, CSS-DOM 主要用于获取和设置 style 对象的各种属性
     
    1、内部插入节点

          *   append(content) :向每个匹配的元素的内部的结尾处追加内容

          *   prepend(content):向每个匹配的元素的内部的开始处插入内容

    html代码:
        <p>I would like to say: </p>
    
    js代码:
        $("p").prepend("<b>Hello 这是在最前面的吗</b>");
        $("p").append("<b>Hello 这是在最后面的吗</b>");
    
    结果:
       Hello 这是在最前面的吗I would like to say: Hello 这是在最后面的吗
       练习4:下拉列表框
     
     2、外部插入节点

          *  after(content) :在每个匹配的元素之后插入内容,例如A.after(B),即BA之后

          *  before(content):在每个匹配的元素之前插入内容例如A.before(B),即BA之前 

       
       3、查找节点及读取或设置属性操作
     
    查找节点:
    •查找属性节点: 通过 jQuery 选择器完成.
    •查找属性节点: 查找到所需要的元素之后, 可以调用 jQuery 对象的 attr() 方法来获取它的各种属性值
     
         创建元素/文本/属性节点
           创建节点: 使用 jQuery 的工厂函数 $(): $(html); 会根据传入的 html 标记字符串创建一个 DOM 对象, 并把这个 DOM 对象包装成一个 jQuery 对象返回.     
    注意:
    •动态创建的新元素节点不会被自动添加到文档中, 而是需要使用其他方法将其插入到文档中;
    •当创建单个元素时, 需注意闭合标签和使用标准的 XHTML 格式. 例如创建一个<p>元素, 可以使用 $(“<p/>”) 或 $(“<p></p>”), 但不能使用 $(“<p>”) 或 $(“</P>”)
           创建文本节点就是在创建元素节点时直接把文本内容写出来;
           创建属性节点也是在创建元素节点时一起创建
     
         删除所有/指定ID/指定样式的元素节点
           remove(): DOM 中删除所有匹配的元素, 传入的参数用于根据 jQuery表达式来筛选元素. 当某个节点用 remove() 方法删除后, 该节点所包含的所有后代节点将被同时删除.
                 这个方法的返回值是一个指向已被删除的节点的引用.
           empty(): 清空节点 清空元素中的所有后代节点(不包含属性节点).
     
         复制节点
    clone(): 克隆匹配的 DOM 元素, 返回值为克隆后的副本. 但此时复制的新节点不具有任何行为.
    clone(true): 复制元素的同时也复制元素中的的事件
     
         替换节点
    replaceWith(): 将所有匹配的元素都替换为指定的 HTML DOM 元素
    注意: 若在替换之前, 已经在元素上绑定了事件, 替换后原先绑定的事件会与原先的元素一起消失
     
        属性操作
    attr(): 获取属性和设置属性
    •当为该方法传递一个参数时, 即为某元素的获取指定属性
    •当为该方法传递两个参数时, 即为某元素设置指定属性的值
    jQuery 中有很多方法都是一个函数实现获取和设置. 如: attr(), html(), text(), val(),  css() 等.
    removeAttr(): 删除指定元素的指定属性
     
         样式操作
    获取 class 和设置 class : class 是元素的一个属性, 所以获取 class 和设置 class 都可以使用 attr() 方法来完成.
    追加样式: addClass()
    移除样式: removeClass() --- 从匹配的元素中删除全部或指定的 class
    切换样式: toggleClass()  --- 控制样式上的重复切换.如果类名存在则删除它, 如果类名不存在则添加它.
    判断是否含有某个样式: hasClass() --- 判断元素中是否含有某个 class, 如果有, 则返回 true; 否则返回 false
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>method_1.html</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <style type="text/css">
        	.myClass{
        		font-size:30px;
        		color:red
        	}
        </style>
       <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>
      </head>
      <body>
    	<div>无样式</div>
    	<div class="myClass">有样式</div>
    	<script type="text/javascript">
    		//$("div").first().addClass("myClass");
    		//$("div").last().removeClass("myClass");
    		//$("div").first().toggleClass("myClass");
    		//$("div").last().toggleClass("myClass");
    		//alert($("div").first().next().hasClass("myClass")==true?"有样式":"无样式");
    	</script>
      </body>
    </html> 
     
        设置和获取 HTML, 文本和值
            
    读取和设置某个元素中的 HTML 内容: html() . 该方法可以用于 XHTML, 但不能用于 XML 文档
    读取和设置某个元素中的文本内容: text(). 该方法既可以用于 XHTML 也可以用于 XML 文档.
    读取和设置某个元素中的值: val() --- 该方法类似 JavaScript 中的 value 属性. 对于文本框, 下拉列表框, 单选框该方法可返回元素的值(多选框只能返回第一个值).如果为多选下拉列表框, 则返回一个包含所有选择值的数组
          
        常用的遍历节点方法
           
    取得匹配元素的所有子元素组成的集合: children(). 该方法只考虑子元素而不考虑任何后代元素.
    取得匹配元素后面紧邻的同辈元素的集合:next();
    取得匹配元素前面紧邻的同辈元素的集合:prev()
    取得匹配元素前后所有的同辈元素: siblings()
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>method_1.html</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="../js/jquery-1.6.js"></script>
      </head>
      <body>
    	<p>Hello</p>
    	<div>
    		<span>
    			Hello Again
    			<b>
    				Bold
    			</b>
    		</span>
    	</div>
    	<p>And Again</p>
    	<script type="text/javascript">
    		//alert($("div").children().first().html());
    		//alert($("div").first().next().text());
    		//alert($("div").first().prev().text());
    		//$("div").first().siblings().each(function(){
    		//	alert($(this).text());
    		//});
    	</script>
      </body>
    </html>

      text()忽略标签

      html()整个标签看做一个整体 ie和firefox结果不一致

    总结:  

     1    jQuery中DOM常用方法或属性
     2    1)val():取得标签中value属性的值
     3    2)html():取得标签内的内容
     4    3)size()或length:取得数组的长度
     5    4)each():该方法必须由jQuery对象调用(即数组对象),each(function)方法,会自动将数组中的每个元素自动调用
     6      function函数
     7    5)click(function)
     8    6)dblclick(function)
     9    ... ...
    10    7)父.append(子),子元素位于父元素之后,但依然是父子关系 
    11    8)父.prepend(子),子元素位于父元素之前,但依然是父子关系 
    12    9)text():取得标签的内容,优先考虑html()方法
     1 jQuery常用操作DOM的API
     2    1)jQuery对象.addClass().addClass();
     3    2)removeClass()
     4    3)toggleClass()
     5    4)hasClass()
     6    5)val(),如果将val()设置给一个select/raido/checkbox元素,内容取决于option元素的value或显示的内容值,value优先
     7    6)text()和html():text()取得是标签之间的内容,html()不仅含有内容,还可能含有标签
     8    7)prev()
     9    8)siblings():要能产生一个数组
    10    9)show()和hide()
    11   10)fadeIn()和fadeOut()
            
     
  • 相关阅读:
    Mutex和RWMutex
    内核态和用户态
    runtime源码
    goroutine的结束与通信
    进程线程协程
    堆和栈
    array和slice区别
    逃逸分析
    单例模式
    WaitGroup用法
  • 原文地址:https://www.cnblogs.com/hacket/p/3071447.html
Copyright © 2020-2023  润新知