jQuery的DOM操作
1、 查找节点
1.1、查找元素节点:
Var $li = $(“ul li:eq(1)”);
Var li_txt = $li.text();
Alert(li_txt);
获取<ul>元素里第二个<li>节点,并将它的文本内容打印出来。
1.2、查找属性节点:
Var $para = $(“p”);
Var p_txt = $para.attr(“title”);
Alert(p_txt);
获取<p>节点,并将它的title属性值打印出来。
示例0201
2、 创建节点
2.1、创建元素节点:
Var $li_1 = $(“<li></li>”);
Var $li_2 = $(“<li></li>”);
$(“ul”).append($li_1);
$(“ul”).append($li_2);
创建2个<li>元素,并将这2个元素插入文档中。
2.2、创建文本节点:
Var $li_1 = $(“<li>香蕉</li>”);
Var $li_2 = $(“<li>苹果</li>”);
$(“ul”).append($li_1);
$(“ul”).append($li_2);
创建元素节点时直接把文本写出来,然后再添加到文档中。
2.3、创建属性节点:
Var $li_1 = $(“<li title=’香蕉’>香蕉</li>”);
Var $li_2 = $(“<li title=’苹果’>苹果</li>”);
$(“ul”).append($li_1);
$(“ul”).append($li_2);
创建元素节点时直接把属性写出来,然后再添加到文档中。
示例0202
3、 插入节点
方法 | 描述 | 示例 |
Append() | 向每个匹配的元素内部追加内容 | Html代码: <p>我想说:<p> jQuery代码: $(“p”).append(“<b>你好</b>”); 结果: <p>我想说:<b>你好</b></p> |
appendTo() | 将所有匹配的元素追加到指定的元素中。与append()不同,$(A).appendTo(B)不是将B追加到A中,而是将A追加到B中 | Html代码: <p>我想说:<p> jQuery代码: $(“<b>你好</b>”).appendTo(“p”); 结果: <p>我想说:<b>你好</b></p> |
Prepend() | 向每个匹配的元素内部前置内容 | Html代码: <p>我想说:<p> jQuery代码: $(“p”).prepend(“<b>你好</b>”); 结果: <p><b>你好</b>我想说:</p> |
prependTo() | 将所有匹配的元素前置倒指定的元素中。与prepend()不同,$(A).prependTo(B)不是将B前置到A中,而是将A前置到B中 | Html代码: <p>我想说:<p> jQuery代码: $(“<b>你好</b>”).prependTo(“p”); 结果: <p><b>你好</b>我想说:</p> |
After() | 在每个匹配的元素之后插入内容 | Html代码: <p>我想说:<p> jQuery代码: $(“p”).after(“<b>你好</b>”); 结果: <p>我想说:</p><b>你好</b> |
insertAfter() | 将所有匹配的元素插入到指定元素的后面。与after()不同,$(A).insertAfter(B)不是将B插入到A后面,而是将A插入到B后面 | Html代码: <p>我想说:<p> jQuery代码: $(“<b>你好</b>”).insertafter(“p”); 结果: <p>我想说:</p><b>你好</b> |
Before() | 在每个匹配的元素之前插入内容 | Html代码: <p>我想说:<p> jQuery代码: $(“p”).before(“<b>你好</b>”); 结果: <b>你好</b><p>我想说:</p> |
insertBefore() | 将所有匹配的元素插入到指定的元素前面。与before()不同,$(A).insertBefore(B)不是将B插入到A前面,而是将A插入到B前面 | Html代码: <p>我想说:<p> jQuery代码: $(“<b>你好</b>”).insertBefore(“p”); 结果: <b>你好</b><p>我想说:</p> |
示例0203
4、 删除节点
4.1、remove()方法:
Var $li = $(“ul li:eq(1)”).remove();
$li.appendTo(“ul”);
删除<ul>节点的第二个<li>元素节点,删除方法返回一个指向被删除节点的引用,然后重新将节点添加到<ul>元素里。
$(“ul li”).remove(“li[title!=菠萝]”)
将<li>元素中属性title不等于’菠萝’的<li>元素删除。
4.2、empty()方法:
$(“ul li:eq(1)”).empty();
将第二个<li>元素里的内容清空。
示例0204
5、 复制节点
$(“ul li“).click(function(){
$(this).clone().appendTo(“ul”);
})
复制当前点击的节点,并把它添加到<ul>元素中。此时复制出来的新元素没有点击事件功能。
$(this).clone(true).appendTo(“body”);
此时复制出来的新元素具有点击事件功能,同时复制了功能。
示例0205
6、 替换节点
将网页中的”<p title=”你好”>你好</p>”替换成”<strong>谢谢</strong>”可以通过以下两种方式实现:
1)$(“p”).replaceWith(“<strong>谢谢</strong>”);
2)$(“<strong>谢谢</strong>”).replaceAll(“p”);
示例0206
7、包裹节点
Html代码:
<strong>谢谢</strong>
<strong>谢谢</strong>
$(“strong”).wrap(“<b></b>”);结果:
<b><strong>谢谢</strong></b>
<b><strong>谢谢</strong></b>
$(“strong”).wrapAll(“<b></b>”);结果:
<b>
<strong>谢谢</strong>
<strong>谢谢</strong>
</b>
$(“strong”).wrapInner(“<b></b>”);结果:
<strong><b>谢谢</b></strong>
示例0207
8、属性操作
8.1、获得属性和设置属性:
Var p_txt = $(“p”).attr(“title”);
$(“p”).attr(“title”,”your title!”);
8.2、删除属性:
$(“p”).removeAttr(“title”);
示例0208
9、样式操作
9.1、获取样式和设置样式:
Var p_class = $(“p”).attr(“class”);
$(“p”).attr(“class”,”myClass”);
9.2、追加样式:
$(“p”).addClass(“myClass”);
(如果一个元素加了多个样式,则不同的样式合并,相同的样式后者覆盖前者。)
9.3、移除样式:
$(“p”).removeClass(“myClass”);
示例0209
10、设置和获取html、文本和值
10.1、html()方法:
Html代码:
<p><strong>谢谢</strong></p>
var p_html = $(“p”).html();
alert(p_html);
打印结果:<strong>谢谢</strong>
$(“p”).html(“<strong>哈哈</strong>”);//设置<p>元素的html代码
结果: <p><strong>哈哈</strong></p>
10.2、text()方法:
Html代码:
<p><strong>谢谢</strong></p>
var p_text = $(“p”).text();
alert(p_text);
打印结果:谢谢
$(“p”).text(“哈哈”);//设置<p>元素的文本内容
结果:<p><strong>哈哈</strong></p>
10.3、val()方法:
示例0210
11、遍历节点
11.1、children()方法:取得匹配元素的子元素集合。
Html代码:
<body>
<p>qq</p>
<ul>
<li>aa</li><li>bb</li><li>cc</li>
</ul>
</body>
Var $body = $(“body”).children();
Var $p = $(“p”).children();
Var $ul = $(“ul”).children();
Alert($body.length); alert($p.length); alert($ul.length);
(2、0、3)
11.2、next()方法:取得匹配元素后面紧邻的同辈元素。
Var $p1 = $(“p”).next();
结果:
<ul>
<li>aa</li><li>bb</li><li>cc</li>
</ul>
11.3、prev()方法:取得匹配元素前面紧邻的同辈元素。
Var $ul = $(“ul”).prev();
结果:
<p>qq</p>
11.4、siblings()方法:取得匹配元素前后所有的同辈元素。
11.5、closest()方法:取得最近的匹配元素。
示例0211
12、CSS-DOM操作
$(“p”).css(“color”);//取得p元素的样式颜色
$(“p”).css(“color”,”red”);//设置p元素的样式颜色为红色
示例0212
13、其它常用方法
13.1、offset()方法:取得元素在当前视窗的相对偏移。
Var offset = $(“p”).offset();
Var left = offset.left;
Var top = offset.top;
13.2、position()
13.3、scrollTop()和scrollLeft()