这里介绍一些jQuery关于html的一些操作。
一般获取内容,有三个方法。
- text() - 设置或返回所选元素的文本内容
- html() - 设置或返回所选元素的内容(包括 HTML 标记)
- val() - 设置或返回表单字段的值
下面看个实例
<!DOCTYPE html> <html> <head> <script src="/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="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元素外部加套一个div 18 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元素的直接父元素背景色为gray 14 15 $("li").parents().css("border", "1px solid red"); //设置li元素的所有父元素边框 //不含根元素html 16 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 ,设置css 2 $("div").first().css("background", "red"); //第一个div设置css 3 $("div").last().css("background", "gray"); //最后一个div设置css 4 $("div").filter(".test").css("color", "green"); //过滤含有test类的div 5 $("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="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 ,设置css 103 $("div").first().css("background", "red"); //第一个div设置css 104 $("div").last().css("background", "gray"); //最后一个div设置css 105 $("div").filter(".test").css("color", "green"); //过滤含有test类的div 106 $("div").not(".test").css("color", "yellow"); //设置不是类test的div 107 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>