DOM操作分为三类
1.DOM Core
DOM Core不是Javascript的专属品,任何一种支持DOM的编程语言都可以使用它,它的用途不仅限于处理一种使用标记语言编写出来的文档。
2.HTML-DOM
比DOM Core出现的更早,它提供了一些更加简明的标记来描述各种HTML-DOM的元素属性。
3.CSS-DOM
CSS-DOM 是针对CSS的操作,在JavaScript中,主要作用是获取和设置style对象各种属性。
样式操作
1.直接设置样式值
css(name,value) //设置单个属性
css({name:value,name:value,name:value....}) //同事设置多个属性
css的参数说明:
2.追加样式和移除样式
addClass(class) //追加样式
示例:
<script src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("p").addClass("color");
$("h2").click(function () {
$("p").toggleClass("get");
})
})
</script>
removeClass(class) //移除样式
3.切换样式
taggleClass() //可以切换不同元素的类样式
4.判断是否念指定的样式
$(selector).hasClass(class);
示例:
<script src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("h2").mouseover(function () {
if(!$("p").hasClass("color")){
$("p").addClass("color");
}
});
$("h2").mouseout(function () {
if($("p").hasClass("color")){
$("p").removeClass("color");
}
});
})
</script>内容操作
1.html代码操作
html([content]) //可选,规定备选元素的新类容,该参数可以包含HTML标签,无参数时,表示被选元素的文本内容
示例:
<script src="js/jquery-1.12.4.js" ></script>
<script>
$(document).ready(function(){
$("h1").click(function () {
var w = "<ul><li>买了商品后,查不到物流信息怎么办?</li><li>申请退款后,交易退款成功,钱到哪里?</li><li>卖家拒绝退款,怎么办?</li><li>投诉发生的时间和条件是什么?</li><li>如何申请淘宝客服介入?</li></ul>";
$(".proList").html(w);
});
$("span").click(function () {
$(".proList").html("");
})
});
</script>2.标签内容操作
text([content]) //可选,规定被选元素的新文本内容。 注释,特殊字符会被编码。无参数时,表示获取元素的被选内容
html()方法和text()方法的区别:
3.属性值操作val([value]) //value,可选。规定被选参数的新内容。无参数时,返回值为第一个被选参数的value属性的值。
示例:
<script src="js/jquery-1.8.3.min.js" ></script>
<script>
$(document).ready(function(){
$("#searchtxt").focus(function () {
var txt_value=$(this).val();
if(txt_value=="电风扇"){
$(this).val("");
}
});
$("#searchtxt").blur(function () {
var txt_value=$(this).val();
if(txt_value==""){
$(this).val("电风扇");
}
});
});
</script>
节点属性操作
1.查找节点
想要对节点进行操作,即增、删、改和复制,首先必须找到要操作的元素。所以,查找的语法示例:$("h1").hide(); 查找h1的元素,并将其隐藏。其实,查找元素,就是通过选择器获取元素。
2.创建节点
$(selector) //选择器
$(element) //Dom元素
$(html) //html代码
HTML代码创建jQuery对象示例:
var $newNode1 = $("<li></li>") //创建空的li元素节点
var $newNode2 = $("<li>HTML</li>") //创建包含文本的li元素节点
var $newNode3 = $("<li title="标题">HTML</li>") //创建包含文本与属性的li元素节点
3.插入节点
| 方法 | 描 述 |
| append() | 向每个匹配的元素内部追加内容。注:在内部元素的最后面追加 |
| appendTo() | 将所有匹配的元素追加到指定的元素中。实际上,使用该方法是颠倒了常规的$(A).append(B)的操作,即不是将B追加到A中,而是将A追加到B中。 |
| prepend() | 向每个匹配的元素内部前置内容。注:在内部元素的最前面追加 |
| prependTo() | 将所有匹配的元素前置到指定的元素中。实际上,使用该方法是颠倒了常规的$(A).prepend(B)的操作,即不是将B前置到A中,而是将A前置到B中。 |
| after() | 在每个匹配的元索之后插入内容。 |
| insertAfler() | 将所有匹配的元素插入到指定元素的后面。实际上,使用该方法是颠倒了常规的$(A).after(B)的操作,即不是将B插入到A后面,而是将A插入到B后面。 |
| before() | 在每个匹配的元素之前插入内容。 |
| insertBefore() | 将所有匹配的元素捅入到指定的元素的前面。实际上,使用该方法是颠倒了常规的$(A).before(B)的操作,即不是将B插入到A前面,而是将A插入到B前面。 |
4.删除节点
$(selector).remove([expr])
5.替换节点
$("ul li:eq(1)").replaceWith($xxx)
6.复制节点
$(selector).clone([includeEvents])
属性操作:
| 方法 | 描 述 |
| attr()、prop() | 设置或返回匹配元素的属性和值。 |
| removeAttr()、removeProp() | 从所有匹配的元素中移除指定的属性。 |
节点遍历:
1.遍历子元素
children()方法。
语法:$(childred).children([expr])
2.遍历同辈元素
| 遍历同辈元素的方法说明 | |
| 方法 | 描述 |
| next([expr]) | 用于获取紧邻匹配元素之后的元素。参数expr可选,用于过滤同辈元素的表达式,如$(“li:eq(1)”).next().css(“color”,”red”); |
| prev([expr]) | 用于获取紧邻匹配元素之前的元素。参数expr可选,用于过滤同辈元素的表达式,如$(“li:eq(1)”).prev().css(“color”,”red”); |
| siblings([expr]) | 用于获取紧邻匹配元素前面和后面的所有同辈元素。参数expr可选,用于过滤同辈元素的表达式,如$(“li:eq(1)”).siblings().css(“color”,”red”); |
3.遍历前辈元素
| parent()方法和parents()方法的参数说明 | ||
| 方法 | 描述 | |
| parent([selector]) | 参数可选。获取当前匹配元素集合中每个元素的父级元素 | |
| parents([selector]) | 参数可选。获取当前匹配元素集合中每个元素的祖先元素 | |
4.其他遍历方法
each()方法
语法:
$(selector).each(function(index,element));
其中,参数index表示选择器的index位置,element表示当前的元素,当返回值为false时可用于及早停止循环。
end()方法
语法:
.end();
结束当前链条中最近的筛选操作,并将匹配元素集还原为之前的状态。
CSS-DOM操作
| CSS-DOM相关操作方法说明 | ||
| 参数 | 描述 | 示例 |
| css() | 设置或返回匹配元素的样式属性 | $(“#box”).css(“color”,”red”) |
| heigh([value]) | 参数可选。设置或返回匹配元素的高度。如果没有规定长度单位,则使用默认px作为单位 | $(“#box”).heigh(180) |
| width([value]) | 参数可选。设置或返回匹配元素的宽度。如果没有规定长度单位,则使用默认px作为单位 | $(“#box”).width(180) |
| offset([value]) | 返回以像素为单位的top和left坐标。此方法仅对可见元素有效 | $(“#box”).offset() |
| offsetParent([value]) | 返回最近的已定位的祖先元素。定位元素指的是元素的CSS position值被设置为relative、absolute或fixed的元素 | $(“#box”).offsetParent() |
| scrollLeft([position]) | 参数可选。设置或返回匹配元素相对滚动条左侧的偏移 | $(“#box”).scorllLeft(20) |
| scrollTop([posttion]) | 参数可选。设置或返回匹配元素相对滚动条顶部的偏移 | $(“#box”).scrollTop(120) |