首页 > 代码库 > jQuery 关于文档处理

jQuery 关于文档处理

这里介绍一些jQuery关于html的一些操作。

一般获取内容,有三个方法。

  • text() - 设置或返回所选元素的文本内容
  • html() - 设置或返回所选元素的内容(包括 HTML 标记)
  • val() - 设置或返回表单字段的值

下面看个实例

<!DOCTYPE html><html><head><script src="http://www.mamicode.com/jquery/jquery-1.11.1.min.js"></script><script>$(document).ready(function(){  $("#btn3").click(function(){    alert("Value: " + $("#test1").val());  //输出表单text的值   val()设置值则替换其中的内容  });  $("#btn1").click(function(){    alert("Text: " + $("#test").text());   //输出文本     text() 设置值则替换其中内容  });  $("#btn2").click(function(){    alert("HTML: " + $("#test").html());     //输出p中的文本还有html标记   HTML()设置值则替换其中的内容  });});</script></head><body><p>姓名:<input type="text" id="test1" value="http://www.mamicode.com/rain"></p><p id="test">这是段落中的<b>粗体</b>文本。</p><button id="btn1">显示文本</button><button id="btn2">显示 HTML</button><button id="btn3">显示值</button></body></html>

关于文档的处理操作还有很多。

 1             $("p").append("<i>test</i>");   //append  在p的尾部添加 2  3             $("p").appendTo("div")      //append 将P追加到所有div中 4  5             $("p").prepend("<i>test</i>");     //在P的开头位置添加 6   7             $("p").prependTo("div");        //将P添加到div的头部 8  9             $("p:first").after("<b>after</b>");   //在第一个P后面插入元素,注意不在p元素体内10 11             $("p:first").before("<b>before</b>");   //在第一个P元素前插入元素,不在p元素体内12 13             $("<b>before</b>").insertAfter("p:first")  //这个效果跟之前after一样,只是调换位置14 15             $("<b>after</b>").insertBefore("p:first")  //这个效果跟之前before一样,只是调换位置16 17             $("p:first").wrap("<div class=‘test‘></div>");   //第一个p元素外部加套一个div18 19             $("p:first").unwrap();    //移除p元素的父元素20 21             $("p:first").wrapInner("<b></b>");    //将每一个匹配的元素的子内容(包括文本节点)用一个HTML结构包裹起来22 23             $("p").replaceWith("<b>this is replacewith</b>");    //将所有匹配的元素替换成指定的HTML或DOM元素。24             25             $("<b>this is replacewith</b>").replaceAll("p");     //用匹配的元素替换掉所有 selector匹配到的元素。26 27             $("p").empty();     //清空p元素内部内容28 29             $("p").remove(".text1")  //删除所有类是text1的P元素30 31             $("p:first").clone().appendTo("div");    //将p复制一个放入所有div中32 33             $("button").clone(true).insertAfter("button");    //将按钮复制一个,放在自己的后面,clone(true),同样复制了button所具有的事件

下面介绍一些对文档的查找的。

 1             $("div").children().css("background", "red");    //设置所有div的子元素 背景为红色    2  3            $("div").find("p").css("background","green")  //设置div后代元素p背景色为绿色 4  5            $("li:first").next().css("background", "red");   //设置第一个LI元素紧邻的后面一个LI元素,背景色为红色。 6  7            $("li:first").nextAll().css("background", "blue");   //设置第一个li后面的所有li元素,背景色为蓝色。 8  9            $("li:first").nextUntil("li[id=‘li4‘]").text("nextUntil");    //查找li后面的元素,满足条件的元素时停止,不包括满足条件的元素10 11            $("p").offsetParent().css("background", "red");    //查找p元素用于定位的父节点,就是返回父元素中第一个position设置为relative或者absolute元素。12 13            $("li").parent().css("background", "gray");       //设置所有li元素的直接父元素背景色为gray14 15            $("li").parents().css("border", "1px solid red");  //设置li元素的所有父元素边框  //不含根元素html16 17            $("li").parentsUntil("body").css("color", "red");   //查找li元素的父节点,直到找到body停止,不包括body,父元素颜色设置为红色。18 19            $("li[id=‘li4‘]").prev().css("color", "black");      //设置id=li4的同辈的前一个元素,颜色为黑色。20 21            $("li[id=‘li4‘]").prevAll().css("color", "black");     //设置id=li4的所有同辈元素 ,颜色为黑色。22 23            $("li:last").prevUntil("li[id=‘li4‘]").css("color", "gray");  //从最后一个li元素位置开始查找,直到找到id=li4的li元素,结果不包括最后一个li与id=li4的元素24 25            $("li").siblings().css("background", "pink");    //li 的所有同辈元素, 设置背景色

在查找之后我们还有对元素进行筛选的方法。

三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素。
其他过滤方法,比如 filter() 和 not() 允许您选取匹配或不匹配某项指定标准的元素。

1            $("div").eq(3).css({ "width": 100, "height": 100, "background": "blue" });   //  指定第4个div  ,设置css2            $("div").first().css("background", "red");    //第一个div设置css3            $("div").last().css("background", "gray");  //最后一个div设置css4            $("div").filter(".test").css("color", "green");   //过滤含有test类的div5            $("div").not(".test").css("color", "yellow");    //设置不是类test的div

 全部的代码:

  1 <!DOCTYPE html>  2 <html xmlns="http://www.w3.org/1999/xhtml">  3 <head>  4     <title></title>  5     <script src="http://www.mamicode.com/jquery/jquery-1.11.1.js"></script>  6     <script>  7         $(document).ready(function () {  8             $("<div>", {                 //创建一个div  9                 "class": "test", 10                 "text": "click me", 11                 click: function () { 12                     $(this).text("hahahha"); 13                 } 14  15             }).appendTo("body"); 16  17             $("li").each(function (index, domEle) {    //遍历li元素 ,index是序号 ,domEle==this   18                 alert(index + " " + $(domEle).text()); 19             }) 20             $("button").click(function () { 21                 $("div").each(function (index, domEle) { 22                     // domEle == this  23                     $(domEle).css("backgroundColor", "yellow"); 24                     if ($(this).is("#stop")) { 25                         $("span").text("Stopped at div index #" + index); 26                         return false; 27                     } 28                 }); 29             }); 30  31  32            // $("li").get(1).textContent = "aaaaaaaaaaaa"; 33  34             $("div").data("name", "rain"); 35             alert($("div").data("name")); 36  37             $("p").html("<b>dsada</b>"); 38  39  40  41             $("p").append("<i>test</i>");   //append 42  43             $("p").appendTo("div")      //append 将P追加到所有div中 44  45             $("p").prepend("<i>test</i>"); 46  47             $("p").prependTo("div"); 48  49             $("p:first").after("<b>after</b>");   //在第一个P后面插入元素,注意不在p元素体内 50  51             $("p:first").before("<b>before</b>");   //在第一个P元素前插入元素,不在p元素体内 52  53             $("<b>before</b>").insertAfter("p:first")  //这个效果跟之前after一样,只是调换位置 54  55             $("<b>after</b>").insertBefore("p:first")  //这个效果跟之前before一样,只是调换位置 56  57             $("p:first").wrap("<div class=‘test‘></div>");   //第一个p元素外部加套一个div 58  59             $("p:first").unwrap();    //移除p元素的父元素 60  61             $("p:first").wrapInner("<b></b>");    //将每一个匹配的元素的子内容(包括文本节点)用一个HTML结构包裹起来 62  63             $("p").replaceWith("<b>this is replacewith</b>");    //将所有匹配的元素替换成指定的HTML或DOM元素。 64              65             $("<b>this is replacewith</b>").replaceAll("p");     //用匹配的元素替换掉所有 selector匹配到的元素。 66  67             $("p").empty();     //清空p元素内部内容 68  69             $("p").remove(".text1")  //删除所有类是text1的P元素 70  71             $("p:first").clone().appendTo("div");    //将p复制一个放入所有div中 72  73             $("button").clone(true).insertAfter("button");    //将按钮复制一个,放在自己的后面,clone(true),同样复制了button所具有的事件 74  75  76             $("div").children().css("background", "red");    //设置所有div的子元素 背景为红色    77  78            $("div").find("p").css("background","green")  //设置div后代元素p背景色为绿色 79  80            $("li:first").next().css("background", "red");   //设置第一个LI元素紧邻的后面一个LI元素,背景色为红色。 81  82            $("li:first").nextAll().css("background", "blue");   //设置第一个li后面的所有li元素,背景色为蓝色。 83  84            $("li:first").nextUntil("li[id=‘li4‘]").text("nextUntil");    //查找li后面的元素,满足条件的元素时停止,不包括满足条件的元素 85  86            $("p").offsetParent().css("background", "red");    //查找p元素用于定位的父节点,就是返回父元素中第一个position设置为relative或者absolute元素。 87  88            $("li").parent().css("background", "gray");       //设置所有li元素的直接父元素背景色为gray 89  90            $("li").parents().css("border", "1px solid red");  //设置li元素的所有父元素边框  //不含根元素html 91  92            $("li").parentsUntil("body").css("color", "red");   //查找li元素的父节点,直到找到body停止,不包括body,父元素颜色设置为红色。 93  94            $("li[id=‘li4‘]").prev().css("color", "black");      //设置id=li4的同辈的前一个元素,颜色为黑色。 95  96            $("li[id=‘li4‘]").prevAll().css("color", "black");     //设置id=li4的所有同辈元素 ,颜色为黑色。 97  98            $("li:last").prevUntil("li[id=‘li4‘]").css("color", "gray");  //从最后一个li元素位置开始查找,直到找到id=li4的li元素,结果不包括最后一个li与id=li4的元素 99 100            $("li").siblings().css("background", "pink");    //li 的所有同辈元素, 设置背景色101 102            $("div").eq(3).css({ "width": 100, "height": 100, "background": "blue" });   //  指定第4个div  ,设置css103            $("div").first().css("background", "red");    //第一个div设置css104            $("div").last().css("background", "gray");  //最后一个div设置css105            $("div").filter(".test").css("color", "green");   //过滤含有test类的div106            $("div").not(".test").css("color", "yellow");    //设置不是类test的div107            108 109            alert("left" + $("div:first").offset().left);110            alert("top" + $("div:first").offset().top);111         })112     </script>113 114     <style>115         .test {116             border: 1px solid red;117         }118     </style>119 </head>120 <body>121     <p id="p1">aa</p>122     <ul>123         <li>as</li>124         <li>aa</li>125         <li>ww</li>126         <li id="li4">ee</li>127         <li>dddd</li>128         <li>rr</li>129     </ul>130     <button>Change colors</button>131     <span></span>132     <div></div>133     <div></div>134 135     <div></div>136     <div></div>137     <div id="stop">Stop here</div>138     <div></div>139 140     <div></div>141     <div></div>142 </body>143 </html>
View Code