文章目录
- 第二章,jQuery基本操作(DOM操作)
- 一,样式操作
- 二,内容操作
- 三,节点操作
- 四,属性操作
- 五,节点遍历
第二章,jQuery基本操作(DOM操作)
一,样式操作
操作 | 说明 |
---|---|
$().css(‘属性名’) | 获取样式style属性 |
$().css(‘属性名’, “属性值”) | 设置样式style属性 |
$().css({属性名1:属性值1,属性名2:属性值2}) | 通过对象形式设置样式style属性 |
$().addClass(“className”) | 给元素添加类名 |
$().removeClass(“className”) | 删除元素的类名 |
$().toggleClass(“className”) | 添加获取删除类名 |
$().hasClass() | 是否具有该类名 |
//1、获取和设置样式$("#tow").attr("class")获取ID为tow的class属性$("#two").attr("class","divClass")设置Id为two的class属性。//2、追加样式$("#two").addClass("divClass2")为ID为two的对象追加样式divClass2//3、移除样式$("#two").removeClass("divClass")移除 ID为two的对象的class名为divClass的样式。$(#two).removeClass("divClass divClass2")移除多个样式。//4、切换类名$("#two").toggleClass("anotherClass") //重复切换anotherClass样式//5、判断是否含有某项样式$("#two").hasClass("another")==$("#two").is(".another");//6、获取css样式中的样式$("div").css("color") 设置color属性值. $(element).css(style)//7、设置单个样式$("div").css("color","red")//8、设置多个样式$("div").css({fontSize:"30px",color:"red"})$("div").css("height","30px")==$("div").height("30px")$("div").css("width","30px")==$("div").height("30px
二,内容操作
-
在jQuery中,提供了html()和text()方法用于操作页面元素的内容,val()方法用于操作表单元素的值。以上方法的使用方式基本相同,当方法没有提供参数时,表示获取匹配元素的内容或值;当方法携带参数时,表示对匹配元素的内容或值进行修改
-
html()方法
- html()方法用于获取第一个匹配元素的HTML,内容或修改匹配元素的HTML内容,方方法仅对XHTML文档有效,不能用于XML文档。html()方法的语法格式如下:
html() html(htmlCode) html(function(index, oldHtmlCode)) //无参方法用于返回第1个匹配元素的HTML内容 //有参方法用于设定匹配元素的文本内容 //htmlCode:表示将所匹配元素的HTML内容设定为htmlCode //function(index, oldHTmlCode):表示将函数的返回值作为当前元素的HTML内容,index表示当前元素在集合中的索引位置,oldHtmlCode表示当前在修改之前的HTML内容//返回#mainCotentDiv标签的HTML内容 $("#mainContentDiv".html()); //设置#mainContentDiv标签的HTML内容为红色标题格式的“标题” $("#mainContentDiv").html("<h1><font color='red'>标题</font><h1/>"); //根据元素在集合中的不同位置,设定不同的HTML内容//示例: $("p").html(function(index, htmlCode){switch(index){case 0:return "<h1> + htmlCode + "<h1/>";case 1:return "<h2> + htmlCode + "<h2/>";} });
-
text()方法
- text()方法用于读取或设置匹配元素的文本内容。与html()方法区别在于,text()方法返回纯文本内容,适用于XHTML和XML文档。text()方法的语法格式如下:
text() text(textContent) text(function(index, oldTextContent)) //无参方法用于返回第1个匹配元素的文本内容 //有参方法用于设定匹配元素的文本内容 //textContent:表示将所匹配元素的文本内容内容设定为textContent //function(index, oldTextContent):表示将函数的返回值作为当前元素的HTML内容,index表示当前元素在集合中的索引位置,oldTextContent表示当前在修改之前的文本内容//示例: <!doctype html> <html><head><meta charset="utf-8"><title>jQuery基本操作-内容操作</title><script type="text/javascript" src="js/jquery-1.x.js"></script></head><body><div id="newsContent"><p>中国的商业正处于一场正在进行时态的变革。</p><p>MALL新闻频道拥有中国购物,城市综合体,商业街区最全的商业信息。</p></div><div id="newsDiscuss"></div><hr/><input type="button" value="获得HTML内容" onClick="getHTMLContent()" /><input type="button" value="获得Text内容" onClick="getTextcontent()" /><input type="button" value="改变正文内容" onClick="changeContent()" /><input type="button" value="显示HTML内容" onClick="setHTMLContent()" /><input type="button" value="显示Text内容" onClick="setTextContent()" /><script type="text/javascript">//获取元素的HTML内容function getHTMLContent() {console.log("<div>中的HTML内容如下:" + $("#newsContent").html());}//获取元素的文本内容function getTextcontent() {console.log("<div>中的text内容如下:" + $("#newsContent").text());}//根据元素在集合中的位置不同,所赋的值也不同function changeContent() {$("p").html(function(index, htmlCode) {switch(index) {case 0:return "<h1>" + htmlCode + "<h1/>";case 1:return "<h2>" + htmlCode + "<h2/>";}});}//设置元素的HTML内容function setHTMLContent() {$("#newsDiscuss").html("<hr/>补充如下:Mall全称Shopping Mall(大型购物中心),属于一种新型的复合型商业。");}//设置元素的文本内容function setTextContent() {$("#newsDiscuss").text("<hr/>补充如下:Mall全称Shopping Mall(大型购物中心),属于一种新型的复合型商业。");}</script></body></html>
-
val()方法
- val()方法用于设置或获取表单元素的值,包括文本框、下拉列表、单选框和复选框等元素。当元素允许多选时,返回一个包含被选项的数组。val()方法的语法格式如下:
val() val(newValue) val(arrayValue) val(function(index, oldValue)) //无参方法用于返回所匹配的表单元素的value //有参方法用于设定所匹配的表单元素的value //newValue:表示将所匹配的表单元素的value值设定为newValue //function(index, oldValue):表示将函数的返回值,index表示当前元素在集合中的索引位置,oldValue表示当前在修改之前的value值//示例: <!doctype html> <html><head><meta charset="utf-8"><title>jQuery基本操作-内容操作</title><script type="text/javascript" src="js/jquery-1.x.js"></script></head><body><div id="newsContent"><p>中国的商业正处于一场正在进行时态的变革。</p><p>MALL时代新闻频道拥有中国购物,城市综合体,商业街区最全的商业信息。</p></div><div id="newsDiscuss"></div><div><hr/>评论:<input type="text" value="请输入新闻评论" id="inputDiscuss" /> 颜色:<select id="discussColor"><option value="black">黑色</option><option value="red" selected>红色</option><option value="green">绿色</option></select>大小:<input type="radio" name="discussSize" value="9pt">较小<input type="radio" name="discussSize" value="12pt" checked>正常<input type="radio" name="discussSize" value="16pt">较大</div><hr/><input type="button" value="提交评论信息" onClick="submitNewsDiscuss()" /><script type="text/javascript">function submitNewsDiscuss() {var inputDiscuss = $("#inputDiscuss").val();$("#newsDiscuss").html("<hr/>评论如下:" + inputDiscuss).css("color", $("#discussColor").val()).css("font-size", $("[name=discussSize]:checked").val());}</script></body></html>
三,节点操作
-
查找节点
//查找元素节点 var $li = $('ul li:eq(2)'); //查找文本节点 console.log($('p').text()); //查找属性节点,通过jQuery的选择器查找到元素节点后,可以利用attr()方法获取其属性的值。attr()方法的用法类似于DOM中的getAttribute()方法 console.log($('p').attr('title'));/获取父节点, //jQuery中的parent()方法用于获取指定元素的父元素 //selector:表示jQuery中的选择器。 //expr:可选,parent()方法的参数,表示用于筛选的选择器。 var Selement = $('selector').parent([expr]); var $parent = $("li:first").parent();//第一个<li>元素的父元素 //拓展: //parents():获取一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素) //closest():从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素/获取子节点, //jQuery中的children()方法用于获取指定元素的所有子元素 //selector:表示jQuery中的选择器。 //expr:可选,children()方法的参数,表示用于筛选的选择器 var $element = $('selector').children([expr]); var $ul = $("ul").children();//ll<p>元素下有3个子元素/获取兄弟节点, //jQuery中的next()方法用于获取指定元素的下一个相邻兄弟元素 //selector:表示jQuery中的选择器。 //expr:可选,next()方法的参数,表示用于筛选的选择器。 var $element = $('selector').next([expr]); var $p1 = $('p').next();//l<p>元素的下一个相邻兄弟元素//jQuery中的prev()方法用于获取指定元素的上一个相邻兄弟元素 var $element = $('selector').prev([expr]);
-
创建节点
//通过jQuery的工厂函数来创建元素节点 var $element = $(elementName); //elementName:表示元素名称var $li = $('<li></li>');
-
插入节点
- 插入内部节点
append()
方法:向每个匹配的元素内部追加内容。appendTo()
方法:把所有匹配的元素追加到另一个指定的元素元素集合中。prepend()
方法:向每个匹配的元素内部前置内容。prependTo()
方法:把所有匹配的元素前置到另一个、指定的元素元素集合中。
// append - append后面的节点被添加到append前面的节点的后面 $("#ti").append($("#ms")); // prepend - prepend后面的节点被添加到prepend前面的节点的前面 $("#ti").prepend($("#ms")); // appendTo. - append To前面的节点被添加到appendTo后面的节点的后面 $("#ti").appendTo($("#ms")); // prependTo. - prependTo前面的节点被添加到prependTo后面的节点的前面 $("#ti").prependTo($("#ms"));
- 插入外部节点
before()
方法:在每个匹配的元素之前插入内容。after()
方法:在每个匹配的元素之后插入内容。insertBefore()
方法:把所有匹配的元素插入到另一个、指定的元素元素集合的前面。insertAfter()
方法:把所有匹配的元素插入到另一个、指定的元素元素集合的后面。
// before - before后面的节点被添加到before前面的节点的前面 $("#ti").before($("#ms")); // after - after后面的节点被添加到after前面的节点的后面 $("#ti").after($("#ms")); //insertBefore $("#ti").insertBefore($("t#ms")); //insertAfter $("#ti").insertAfter($("#ms"));
- 插入内部节点
-
删除节点
- remove()方法
//jQuery中提供rermove()方法用于从DOM中删除所有匹配的元素 $element.remove([expr]); //expr:用于筛选元素的jQuery表达式。 $("ul li:eq(1)").remove();//获取第二个<li>元素节点后,将它从网页中删除 $("ul li" ).remove("li[title!=菠萝]");//把<li>元素中属性title不等于"菠萝"的<li>元素删除
- empty()方法
//jQuery中提供empty)方法删除匹配的元素集合中所有的子节点。 $element.emptv(); //empty()方法的用法如下示例代码: $("ul lieq(1)").empty();ll获取第二个<li>元素节点后,清空此元素里的内容
-
替换节点
- replaceWith()方法
//jQuery中提供replaceWidth()方法将所有匹配的元素替换成指定的HTML或DOM元素 $element.replaceWidth(content); //content:用于将匹配元素替换掉的内容。 $("p").replaceWith("<strong>你最不喜欢的水果是?</strong>");
- replaceAll()方法
//jQuery中提供replaceAll()方法将所有匹配的元素替换成指定的HTML或DOM元素。 $element.replaceAll(content); //content:用于将匹配元素替换掉的内容。 $("p").replaceAll("<strong>你最不喜欢的水果是?</strong>");
-
复制节点
- colne()方法
//jQuery中提供clone()方法克隆匹配的DOM元素并且选中这些克隆的副本 $element.clone(events); //events:一个布尔值 ( true 或者 false)指示事件处理函数是否会被复制。默认为false。 $("ul li").click(function(){$(this).clone().appendTo("ul"");//复制当前点击的节点,并将它追加到<u>元素 $(this).clone(true).appendTo("ul");//注意参数true//可以复制自己,并且他的副本也有同样功能 });//原生DOM中的cloneNade(Boolean)方法,参数Boolean表示是否复制后代节点。 //jQuery中的clone(Boolean)方法,参数Boolean表示是否复制事件
四,属性操作
-
jQuery的attr方法和removeAttr方法
- attr()方法
(1)作用: 获取或设置属性节点的值 (2)注意点一: 可以传递一个参数,也可以传递两个参数。如果传递一个参数,代表获取属性节点的值;若传递两个参数,代表设置属性节点的值。 (3)注意点二: 无论找到多少个元素, 都只会返回第一个元素指定的属性节点的值;如果是设置找到多少个元素就会设置该N个元素的属性节点值;如果设置的属性节点不存在,那么系统会在所有找到的元素中 自动新增该属性节点 (4)返回值: 返回属性值的函数,第一个参数为当前元素的索引值,第二个参数为原先的属性值
- removeAttr()方法
(1)作用: 删除属性节点 (2)注意点: 会删除所有找到元素指定的属性节点;也可以删除多个属性节点 (3)返回值: 返回属性值的函数,第一个参数为当前元素的索引值,第二个参数为原先的属性值
<body><p class="p1" name="name1"></p><p class="p2" name="name2"></p><script src="../jquery.js"></script><script> $(function() {//attr()console.log($('p').attr('class'));console.log($('p').attr('class',"change"));console.log($('p').attr('a',"a"));/*removeAttr(name)删除属性节点*/console.log($('p').removeAttr("a"));console.log($('p').removeAttr("class name"));})</script> </body>
五,节点遍历
-
遍历子元素
//children()方法可以用来获取元素的所有子元素 $(selector).children([expr]);//获取<section>的子元素,但不包含子元素的子元素 var $section =$("section").children();alert($section.length);
-
遍历同辈元素
//jQuery可以获取紧邻其后、紧邻其前和位于该元素前与后的所有同辈元素 //next([expr]) 用于获取紧邻匹配元素之后的元素 $("li:eq(1)").next().addClass("orange");//prev([expr]) 用于获取紧邻匹配元素之前的元素 $("li:eq(1)").prev().addClass("orange"); //slibings([expr]) 用于获取位于匹配元素前面和后面的所有同辈元素
-
遍历前辈元素
//parent():获取元素的父级元素 //parents():获取元素的所有祖先元素 $("li:eq(1)").parent().addClass("orange");$("li:eq(1)").parents().addClass("orange");
-
其他遍历方法
//each( ) :规定为每个匹配元素规定运行的函数 $(selector).each(function(index,element)) ; //index:选择器位置 //element:当前元素