jQuery中DOM操作
文章目录
Tips
- DOM操作分为三类:
① DOM Core:任何一种支持DOM的编程语言都可以使用它,如getElementById()
② HTML-DOM:用于处理HTML文档,如document.forms
③ CSS-DOM:用于操作CSS,如element.style.color=“green” - JavaScript用于对(x)html文档进行操作,它对这三类DOM操作都提供了支持
而 jQuery 对 JavaScript 中的 DOM 操作进行了封装
样式操作
css操作
css("属性","属性值")
:设置单个CSS属性css({"属性1":"属性值1","属性2":"属性值2"...})
:设置多个CSS属性var a = css(name)
:获取样式值addClass("样式名")
:添加css中已定义的class样式名
只能填写类样式名,如:.mxy{样式} 对应 addClass(“mxy”)
注意:在使用addClass()
时,更具体的覆盖不具体的,因此有些以父类标签开始的样式不容易被覆盖removeClass("样式名")
:移除样式,不填则移除所有样式toggleClass("样式名")
:样式切换,相当于addClass()与removeClass()轮流hasClass("样式名")
:判断样式,是否包含指定的样式show()
:显示hide()
:隐藏,所占空间也完全隐藏,不会留下空白
CSS-DOM操作
语法 | 功能 |
---|---|
css() | 设置或返回匹配元素的样式属性 |
height([value]) | 设置或返回匹配元素的高度 |
width([value]) | 设置或返回匹配元素的宽度 |
offset([value]) | 返回以像素为单位的top和left坐标。仅对可见元素有效 |
offsetParent( ) | 返回最近的已定位祖先元素 定位元素指的是元素的CSS position值被设置为relative、absolute或fixed的元素 |
position( ) | 返回第一个匹配元素相对于父元素的位置 |
scrollLeft([position]) | 参数可选。设置或返回匹配元素相对滚动条左侧的偏移 |
scrollTop([position]) | 参数可选。设置或返回匹配元素相对滚动条顶 |
内容及Value值操作
html()
:可以对HTML代码进行操作,类似于JS中的innerHTMLtext()
:可以获取或设置元素的文本内容val()
:可以获取或设置元素的value属性值
语法格式 | 参数说明 | 功能描述 |
---|---|---|
html() | 无参数 | 用于获取第一个匹配元素的HTML内容或文本内容 |
html(content) | content为元素的HTML内容 | 用于设置所有匹配元素的HTML内容或文本内容 |
text() | 无参数 | 用于获取所有匹配元素的文本内容 |
text (content) | content为元素的文本内容 | 用于设置所有匹配元素的文本内容 |
节点操作
查找 / 获取节点(元素)
查找元素
find()
:filter()
:[index]
:get(index)
:.eq(index)
:获取当前链式操作中的下标为 index 的 jQuery 对象
:eq()
与.eq()
的区别
$('div:eq(1)');
// 由于 $() 中为引号,可知 $() 里为字符串,故 :eq()中的内容只能为具体的数值
//如果想要在 :eq() 中加入获取到的 索引号等 需要将字符串改为拼接
//勿忘结尾的 ')'
$('div:eq('+$(this).index()+')');
//.eq() 的用法就比较随意,内容为变量或者数值都可以
$('div').eq(a);
$('div').eq(1);
获取子元素
children()
:方法可以用来获取元素的所有子元素
获取同辈元素
语法 | 功能 | 示例 |
---|---|---|
next([expr]) | 用于获取紧邻匹配元素之后的元素 | $(“li:eq(1)”).next().addClass(“orange”); |
prev([expr]) | 用于获取紧邻匹配元素之前的元素 | $(“li:eq(1)”).prev().addClass(“orange”); |
slibings([expr]) | 用于获取位于匹配元素前面和后面的所有同辈元素 | $(“li:eq(1)”).siblings().addClass(“orange”); |
获取前辈元素
parent()
:获取元素的父级元素parents()
:元素元素的祖先元素
创建节点
工厂函数$()用于获取或创建节点
$(selector)
:通过选择器获取节点$(element)
:把DOM节点转化成jQuery节点$(html)
:使用HTML字符串创建jQuery节点
DOM对象 和 jQuery对象 转换
DOM → jQuery
var txtName =document.getElementById("txtName"); //DOM对象
var $txtName =$(txtName); //jQuery对象
jQuery → DOM
[index]
方法
var $txtName =$ ("#txtName"); //jQuery对象
var txtName =$txtName[0]; //DOM对象
get(index)
方法
var $txtName =$("#txtName"); //jQuery对象
var txtName =$txtName.get(0); //DOM对象
插入节点
元素内部插入子节点
语法 | 功能 | 示例 |
---|---|---|
append(content) | $(A).append(B)表示将B追加到A中 | $(“ul”).append($newNode1); |
appendTo(content) | $(A).appendTo(B)表示把A追加到B中 | $newNode1.appendTo(“ul”); |
prepend(content) | $(A). prepend (B)表示将B前置插入到A中 | $(“ul”). prepend ($newNode1); |
prependTo(content) | $(A). prependTo (B)表示将A前置插入到B中 | $newNode1. prependTo (“ul”); |
元素外部插入同辈节点
语法 | 功能 | 示例 |
---|---|---|
after(content) | $(A).after (B)表示将B插入到A之后 | $(“ul”).after($newNode1); |
insertAfter(content) | $(A). insertAfter (B)表示将A插入到B之后 | $newNode1.insertAfter(“ul”); |
before(content) | $(A). before (B)表示将B插入至A之前 | $(“ul”).before($newNode1); |
insertBefore(content) | $(A). insertBefore (B)表示将A插入到B之前 | $newNode1.insertBefore(“ul”); |
删除节点
remove()
:删除整个节点empty()
:清空节点内容detach()
:删除整个节点,保留元素的绑定事件、附加的数据
替换节点
replaceWith()
:replaceAll()
:
复制节点
clone()
:用于复制某个节点
$(selector).clone([includeEvents]) ;
节点属性操作
attr()
:用来获取与设置元素属性
$(selector).attr([name]) ;
或
$(selector).attr({[name1:value1]…[nameN:valueN]}) ;
removeAttr()
:用来删除元素的属性
$(selector).removeAttr(name) ;
$(".contain img").removeAttr("alt");
节点遍历
each()
:规定为每个匹配元素规定运行的函数
$(selector).each(function(index,element)) ;
//示例
$("img").click(function(){
$("li").each(function(){
var str=$(this).text()+"<br>";
$("section").append(str);
})
});
end()
:结束当前链条中的最近的筛选操作,并将匹配元素集还原为之前的状态
$(".gameList li").first().css("background","#b8e7f9").end().last().css("background","#d3f4b5");