一、DOM操作
1、DOM操作的分类:
DOM Core:任何一种支持DOM的编程语言都可以使用它,如getElementById()
HTML-DOM:用于处理HTML文档,如document.forms
CSS-DOM:用于操作CSS,如element.style.color="green"
jQuery对js中的DOM操作进行l了封装。
jQuery中的DOM操作:
使用css()为指定的元素设置样式值或获取样式值。
代码如下:
$(this).css("border","5px solid #f5f5f5"); //对单个属性设置
或者
$(this).css({"border":"5px solid #f5f5f5","opacity":"0.5"});
//对多个属性进行设置,可以使用{}形式
$(selector).addClass(“red”); //追加单个样式名
或者:
$(selector).addClass(class1 class2 … classN);//追加多个样式,中间用空格隔开
$(selector).removeClass("red") ;
或者
$(selector).removeClass("class1 class2 … classN ") ;//移除多个样式
toggleClass();
相当于addClass()与removeClass()实现样式切。
hasClass( ):方法来判断是否包含指定的样式
如下:
$(“top”). hasClass(“blue”);
//判断元素top中是否存在样式blue
3、内容操作
HTML代码操作:
html()可以对HTML代码进行操作,类似于JS中的innerHTML。
代码如下:
$("div.left").html(); //获取元素中的html代码
或者
$("div.left").html("…")//设置元素中的html代码
$("div.left").text();//获取元素中的文本内容
或者
$("div.left").text("…");//设置元素中的文本内容
语法格式 |
参数说明 |
功能描述 |
html( ) |
无参数 |
用于获取第一个匹配元素的HTML内容或文本内容 |
html(content) |
content为元素的HTML内容 |
用于设置所有匹配元素的HTML内容或文本内容 |
text( ) |
无参数 |
用于获取所有匹配元素的文本内容 |
text (content) |
content为元素的文本内容 |
用于设置所有匹配元素的文本内容 |
代码如下:
$(this).val();//获取元素中的val属性值
或者
$(this).val(value)//设置元素中的val属性值
4、节点操作
jQuery中的节点操作
查找节点
创建节点
插入节点
删除节点
替换节点
复制节点
jQuery.parent() //找父元素
jQuery.parents() //找到所有祖先元素,不限于父元素
jQuery.children() //查找所有子元素,只会找到直接的子节点,不会返回子级的子节点
jQuery.contents() //查找下面的所有内容,包括节点和文本。
jQuery.prev() //查找上一个兄弟节点,不是所有的兄弟节点
jQuery.prevAll() //查找所有之前的兄弟节点
jQuery.next() //查找下一个兄弟节点,不是所有的兄弟节点
jQuery.nextAll() //查找所有之后的兄弟节点
jQuery.siblings() //查找兄弟节点,不分前后
jQuery.find(“p”) //查找所有的p元素,也就是找后代,返回的是所有的子级元素
创建节点元素
工厂函数$():用于获取或创建节点
$(selector):通过选择器获取节点
$(element):把DOM节点转化成jQuery节点
$(html):使用HTML字符串创建jQuery节点
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()用于复制某个节点
$(“p”).clone([includeEvents]) ;
//复制p元素,[]是可选可不选,可以设置true或者false,true为复制,false为不复制,默认是不复制,
如果是true,就代表将前面所有的文本,事件都复制过来
5、属性操作
$(selector).attr([name]) ; //获取属性值
或者
$(selector).attr({[name1:value1]…[nameN:valueN]}) //设置多个属性值
//语法
$(selector).removeAttr(name) ;
如下:
$("img").removeAttr("alt");//删除img里面的alt属性
6、节点遍历
children()方法可以用来获取元素的所有子元素
$("li").children("p");
//选取li下面的的子元素p,但不包括p的子元素
next([expr]) |
用于获取紧邻匹配元素之后的元素 $("li:eq(1)").next().addClass("orange"); |
prev([expr]) |
用于获取紧邻匹配元素之前的元素 $("li:eq(1)").prev().addClass("orange"); |
slibings([expr]) |
用于获取位于匹配元素前面和后面的所有同辈元素 $("li:eq(1)").siblings().addClass("orange"); |
代码如下:
//将下标为1的li元素的父级,添加样式orange
$("li:eq(1)").parent().addClass("orange");
//将下标为1的li元素的组先级,添加样式orangge
$("li:eq(1)").parents().addClass("orange");
其他遍历方法
$(selector).each(function(index,element)) ;
//index为当前元素的下标,element为当前的元素
7、CSS-DOM操作
除css()外,还有获取和设置元素高度、宽度等的样式操作方法
语法 |
功能 |
css() |
设置或返回匹配元素的样式属性 |
height([value]) |
设置或返回匹配元素的高度 |
width([value]) |
设置或返回匹配元素的宽度 |
offset([value]) |
返回以像素为单位的top和left坐标。仅对可见元素有效 |
offsetParent( ) |
返回最近的已定位祖先元素。定位元素指的是元素的CSS position值被设置为relative、absolute或fixed的元素 |
position( ) |
返回第一个匹配元素相对于父元素的位置 |
scrollLeft([position]) |
参数可选。设置或返回匹配元素相对滚动条左侧的偏移 |
scrollTop([position]) |
参数可选。设置或返回匹配元素相对滚动条顶 |