首页 > 代码库 > jQueryDOM操作
jQueryDOM操作
1.添加节点,效率上不相上下,使用firefox,jQuery要快于JavaScript
1>JavaScript
$( function()
{
var t1 = new Date();
var body = document.getElementsByTagName("body")[0];
for(var i =0; i < 5000 ;i++)
{
var span = document.createElement("span");
span.setAttribute("class","red");
body.appendChild(span);
}
var t2 = new Date();
$("#result").html("添加5000个span用时:" + (t2-t1));
}
)
2>jQuery
$( function()
{
var t1 = new Date();
for (var i = 0;i<5000;i++)
{
var $span = $("<span/>");
$span.attr("class","red");
$("body").append($span);
/*
注:在效率上使用
$("body").append("<span class=‘red‘ />");
要快,大约2到3倍
*/
}
var t2 = new Date();
$("#result").html("添加5000个span用时:" + (t2-t1));
}
)
2.添加文本节点
var $h1 = $("<h1>标题,这个是</h1>");
$("body").add($h1);
3.添加属性
$span.attr("class","red");
或
var $span = $("<span class=‘red‘/>");
4.添加元素
1>append 在末尾追加。添加后成为最后一个
2>appendTo
3>prepend 在开始追加。添加后成为第一个
4>prependTo
5>after 在每个匹配元素后插入。如 :$("div").after("<p>一段文本</p>");
6>before ..............前....
7>insertAfter 如:$("<p>一段文本</p>").insertAfter("div");
8>insertBefore
5.删除元素
1>remove() 如:$("p").remove();
2>empty()
6.复制元素
1>clone() 如;var $div = $("div").clone();若使用clone(true)则同时会复制目标元素的事件
7.元素替换
1>replaceWith() 如:$("p").replaceWith("<div>替换</div>");
2>replaceAll()
8.包裹(加壳)元素
1>A.wrap(B) 用元素B包裹元素A。如:$("p").wrap("<span class=‘wrap‘ />");在p元素外加一层span,这里每一个p都会有一个span
2>wrapAll() 用元素B包裹全部元素A。如:$("p").wrapAll("<span class=‘wrap‘ />");则在新增元素span下有(连续)若干原有的p元素
3>wrapInner() 元素B将包裹在每个元素A里。与1>刚好相反。
9.属性操作
1>attr()
<1>设置属性 如:$("img").attr( { src:"1.jpg" , alt:"测试图像"); $("p").attr("title","文本");
<2>获取属性 如:$("p").attr("title"); 若没有此属性则返回 undefined.
<3>删除属性 removeAttr() 如:$("p").removeAttr("title");
10.类样式
1>追加样式 addClass()。 如:$("p").addClass("style1");
2>删除样式 removeClass()。 如:$("p").removeClass("style1");
3>切换样式 toggleClass(styleName ,[选项])。如果第二个参数不存在,如果目标元素中的样式不存在,则追加,如果存在,则删除样式。如:$("p").toggleClass("hidden",n++ % 3== 0);//每三次切换一次样式
4>样式判断 hasClass()。 如 $("p").hasClass("style1"); 返回true或false
11.操作Html、文本与值
1>读写Html,html()。此方法是对Dom的innerHtml的封装
如:var $html = $("p").html();
$("p").html($html);
2>读写文本,text()。用法同上。
3>读写表单值,val()。用法同上。
示例:
<form>
<select id="s1">
<option value="http://www.mamicode.com/1" selected="selected">单选1</option>
<option value="http://www.mamicode.com/2" >单选2</option>
</select>
<select id="s2" multiple="multiple">
<option value="http://www.mamicode.com/1" selected="selected">单选1</option>
<option value="http://www.mamicode.com/2" >单选2</option>
<option value="http://www.mamicode.com/3" >单选3</option>
</select>
<input type="checkbox" value="http://www.mamicode.com/6">复选框</input>
<input type="radio" value="http://www.mamicode.com/8">单选框</input>
</form>
$("#s1").val("单选2");
$("s2").val(["多选2","多选3"]);
$("input").val(["6","8"]);
12.读写样式,css() 第169页
13.偏移位置
1>绝对偏移位置 offset()方法返回元素在当前窗口的相对位置。返回值为一个对象,包含top与left属性。仅对可见元素有效。
2>相对偏移位置 position()方法。用法同上。
注:
相对偏移位置是元素相对于距离最近的父级定位元素左上角的距离。
<1>定位元素,就是被定义了 相对(),绝对(),固定()定位的元素,即设置了CSS的position为absolute,fixed或relative。
<2>最近的父级定位元素是指元素的父级的position被定义为<1>中的值。若父级中没有定义position的三个属性值,那么父级要再向上追溯,直到body
14.元素的高和宽
1>width()
2>height()
3>innerHeight() //返回元素的内部高
4>innerWidth() //..............宽
5>outerHeight() //返回元素的总高
6>outerWidth() //............宽
15.元素遍历
1>children() //子元素。如:$("body").children().eq(2).children()[0];
2>next() //相邻的下一个(同级)
3>prev() //......上.........
4>parent() //父元素
jQueryDOM操作