jquery中的DOM操作

DOM操作分为:DOM核心、HTML-DOM、CSS-DOM 

1.节点操作

查找

查找元素节点:jquery选择器

查找属性节点:节点.attr(“”)方法,参数为要查询的属性的名字

 

创建

创建元素节点:$("html")方法,参数为HTML标记字符串,如:<p></p>

    注意:(1)动态创建的新元素节点不会被自动添加到文档中,需要用其他方法插入文档中(2)创建元素时注意标签闭合,可以用$("<p></p>")或$("</p>")

创建文本节点:$("<p>文本内容</p>")方法

创建属性节点:$("<p 属性名='属性值'></p>")方法

 

插入节点

(1)$("A").append("B")方法:将B节点插入到A节点内部的后位         append:末尾附加

         $("B").appendTo("A")方法:

(2)$("A").prepend("B")方法:将B节点插入到A节点内部的前置位置

         $("B").prependTo("A")方法:

(3)$("A").after("B")方法:将B节点插到A节点外部之后

         $("B").insertAfter("A")方法:

(4)$("A").before("B")方法在B节点插入A节点外部之前

         $("B").insertBefore("A")方法:

 

删除节点

(1)remove()方法:删除某个节点及该节点包含的所有后代节点,返回值是一个指向已被删除的节点的引用,可再次使用

                                可通过传参选择性的删除节点

(2)detach()方法:该方法不会把匹配元素从jquery对象中删除,可再次使用

                               和remove的区别:所有绑定的事件、附加的数据等都都会保留下来

         相同点:remove和detach都不会把匹配元素从jQuery对象中删除,可再次使用

(3)empty()方法:清空某个节点中的所有后代节点,即:清空后只剩下HTML标记,不可再次使用

 

复制节点

clone()方法:复制的新元素不具有任何行为

                     传入参数true可使复制元素的同时复制元素中的绑定事件

 

替换节点

$("A").replaceWith("B")方法:将所有匹配元素替换成指定的HTML或DOM元素,即:用B节点替换A节点

$("B").replaceAll("A")方法

 

包裹节点

(1)$("A").wrap("B")方法:将所有的元素进行包裹,用B将A包裹起来

(2)$("A").wrapAll("B")方法:将符合的每个元素进行单独包裹

(3)$("A").wrapInner("B")方法:用B节点将A节点的子内容(包括文本节点)包裹起来

 

2. 属性操作

获取属性:attr()方法— — 参数为属性名

设置属性:attr()方法— — 参数为“属性名”,“属性值”;或“属性名“:”属性值”,“属性名”:“属性值”

   注意:有些方法既能获取元素的值,也能设置元素的值——html()、text()、height()、width()、val()、css()、attr()

删除属性:removeAttr()方法

 

3.样式操作

获取样式和设置样式(获取和设置class属性):attr()方法

追加样式:addClass(“class类名”)方法

移除样式:removeClass()方法,参数为class名时,移除相应的样式;参数为空时,移除所有class的值

切换样式:toggle(行为1,行为2)方法— —控制行为的重复切换

                 toggleClass("class名")方法— —样式的重复切换。如果类名存在删除它,不存在添加它。

判断是否含有某个样式:hasClass("class")方法,如果有true,否则返回false

 

4.获取和设置HTML、文本和值

获取和设置某个元素中的HTML内容:html()方法,类似于js的innerHTML

获取和设置某个元素中的文本内容:text()方法,类似于js的innerText

        注意:(1)Firefox不支持innerText,text()支持所有浏览器(2)text()对HTML和XML都有效

获取和设置元素的值:val()方法,类似于js的value属性(输入框提示文字)。无论元素是文本框,下拉列表还是单选框都可以返回元素的值,如果元素为多选,则返回一个包含所有选择的值得数组。实现输入框提示:文字的显示和隐藏,触发获取和失去鼠标焦点事件

1 $("#address").focus(function(){
2         var txt_value = $(this).val();    //获取地址文本框的值
3         if(txt_value=="请输入邮箱地址"){
4                 $(this).val("");
5         }
6 })
1 $("#address").blur(function(){
2         var txt_value = $(this).val();    //获取地址文本框的值
3         if(txt_value==""){
4                 $(this).val("请输入邮箱地址");
5         }
6 })

  表单元素的defaultValue属性也可实现同样的功能,defaultValue属性包含该表单元素的初始值

1 $("#address").focus(function(){
2         var txt_value = $(this).val();    //获取地址文本框的值
3         if(txt_value==this.defaultValue){
4                 $(this).val("");
5         }
6 })

val()方法的另一个用处是能使select(下拉列表框)、checkbox(多选框)和radio(单选框)相应的选项被选中,常用于表单操作

//下拉列表
$("#single").val("选择2号");
$("#multiple").val(["选择2号","选择3号"])
//单选框、多选框
$(":checkbox").val(["check2","check3"]);
$(":radio").val(["check2"]);

 

上面的例子,也可使用attr()方法来实现同样的功能

$("#single  option:eq(1)").attr("selected",true]);
$("[value=radio2]:radio").attr("checked",true);

 

 

5.遍历节点

获得元素的直接子元素:children()方法

获得元素后面紧邻的同辈元素:next()方法

获得元素前面紧邻的同辈元素:prev()方法

获取元素前后所有的同辈元素:siblings()方法

从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素:closest()方法

获得集合中每个匹配元素的父级元素:parent()方法

获得集合中每个匹配元素的祖先元素:parents()方法

 

6.CSS—DOM:获取和设置style对象的属性,style属性无法提取到通过外部css设置的样式属性

获取和设置元素的样式属性:css()方法

//单个样式
$("p").css("color","red");
//多个样式
$("p").css("color":"red","bgColor":"red");

                   设置透明度:opacity属性(兼容)——$("p").css("opacity","0.9");

获取和设置高宽:height()方法和width()方法,也可使用css()方法设置

 

posted @ 2017-07-22 22:17  苯宝宝  阅读(361)  评论(0编辑  收藏  举报