- DOM操作分類
DOM操作分為三類:
-
-
- CSS-DOM:用于操作CSS,如element.style.color="green"
- HTML-DOM:用于處理HTML文檔,如document.forms
- DOM Core:任何一種支援DOM的程式設計語言都可以使用它,如getElementById()
- jQuery中的DOM操作
-
jQuery對JavaScript中的DOM操作進行了封裝
jQuery中的DOM操作
-
- 樣式操作
- 内容及Value值操作
- 節點操作
- 節點屬性操作
- 節點周遊
- 設定單個屬性
css(name,value) ;
或
- 同時設定多個屬性
css({name:value, name:value,name:value…}) ;
示例;$(this).css("border","5px solid #f5f5f5");
或
$(this).css({"border":"5px solid #f5f5f5","opacity":"0.5"});
- 擷取屬性值
css(name)
<style> .dd{ border: 1px solid red; width: 50px; height: 70px;} </style> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript"> $(function(){ // $("div").css("border","1px solid red"); //$("div").css({"border":"1px solid red","width":"50px","height":"70px"}); $("div").addClass("dd"); }); function show(div1){ alert($(div1).css("border")); } </script> </head> <body> <div οnclick="show(this);"> 來打我把 </div> |
- 追加樣式
$(selector).addClass(class);
或 $(selector).addClass(class1 class2 … classN);//多個樣式之間是空格
示例:
$("h2").mouseover(function() {
$("p").addClass("content border");
});
- 移除樣式
$(selector).removeClass("class") ;
或 $(selector).removeClass("class1 class2 … classN ") ;
示例:
$("h2").mouseout(function() {
$("p").removeClass("text content");
});
- 切換樣式
toggleClass()
模拟了addClass()與removeClass()實作樣式切換的過程
文法:
$(selector).toggleClass(class) ;
示例:
$("h2").click(function() {
$("p").toggleClass("content border");
});
- 判斷是否含指定的樣式
hasClass( )方法來判斷是否包含指定的樣式
文法:
$(selector). hasClass(class);
示例:
$("h2").mouseover(function() {
if(!$("p").hasClass("content ")){
$("p").addClass("content ");
}
});
$("h2").mouseout(function() {
if($("p").hasClass("content ")) {
$("p").removeClass("content ");
}
});
- 内容操作
HTML代碼操作
标簽内容操作
屬性值操作
- 擷取元素中的html代碼
$("div.left").html();
- 設定元素中的html代碼
$("div.left").html("<div class='content'>…</div>");
- 标簽内容操作
- 擷取元素中的文本内容
$("div.left").text();
- 設定元素中的文本内容
$("div.left").text("<div class='content'>…</div>");
- html( ) 和text( )方法的差別
html()設定可以包含文本和标簽
text() 設定隻能是文本
- 屬性值操作
- 擷取元素的value屬性值
$(this).val();
- 設定元素的value屬性值
$(this).val(value);
- 節點操作
jQuery中節點操作
查找節點(前面章節已講)
建立節點
插入節點
删除節點
替換節點
複制節點
- 建立節點
var uu="<ul><li>美女</li></ul>"; $("#love").html(uu); |
- 元素内部插入子節點
- append(content)
$(A).append(B)表示将B追加到A中
如:$("ul").append($newNode1);
- prepend(content)
$(A). prepend (B)表示将B前置插入到A中
如:$("ul"). prepend ($newNode1);
- 元素外部插入同輩節點
after(content)
$(A).after (B)表示将B插入到A之後
如:$("ul").after($newNode1);
before(content)
$(A). before (B)表示将B插入至A之前
如:$("ul").before($newNode1);
- 删除節點
remove():删除整個節點 $(selector).remove([expr]);
empty():清空節點内容 $(selector).empty();
- 替換節點
replaceWith()
示例:
var $newNode1=$("<li>你喜歡哪些冬季運動項目?</li>");
$(".gameList li:eq(2)").replaceWith($newNode1);
- clone()用于複制某個節點
$(selector).clone([includeEvents]) ;
參數ture或flase, true複制事件處理,flase時反之
- 屬性操作
擷取與設定元素屬性
删除元素屬性
attr()用來擷取與設定元素屬性
擷取屬性值
$(selector).attr([name]) ;
設定多個屬性的值
$(selector).attr({[name1:value1]…[nameN:valueN]}) ;
示例:
$(".contain img").attr({width:"200",height:"80"});
删除元素屬性
removeAttr()用來删除元素的屬性
文法:$(selector).removeAttr(name) ;
示例 删除元素的alt屬性
$(".contain img").removeAttr("alt");
節點周遊
children([expr]) 隻考慮子元素而不考慮所有後代元素
each
示例
查找DIV中的每個子元素。
HTML 代碼:
<p>Hello</p><div><span>Hello Again</span></div><p>And Again</p>
jQuery 代碼:
$("div").children()
結果:
[ <span>Hello Again</span> ]
描述:
在每個div中查找 .selected 的類。
HTML 代碼:
<div><span>Hello</span><p class="selected">Hello Again</p><p>And Again</p></div>
jQuery 代碼:
$("div").children(".selected")
結果:
[ <p class="selected">Hello Again</p> ]
next([expr])傳回後面那個緊鄰的同輩元素
示例
描述:
找到每個段落的後面緊鄰的同輩元素。
HTML 代碼:
<p>Hello</p><p>Hello Again</p><div><span>And Again</span></div>
jQuery 代碼:
$("p").next()
結果:
[ <p>Hello Again</p>, ]
描述:
找到每個段落的後面緊鄰的同輩元素中類名為selected的元素。
HTML 代碼:
<p>Hello</p><p class="selected">Hello Again</p><div><span>And Again</span></div>
jQuery 代碼:
$("p").next(".selected")
結果:
[ <p class="selected">Hello Again</p> ]
<script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript"> $(function(){ // var love="<li>我兒子</li>"; //内部插入 // $("ul").prepend(love); //外部插入 // var love1="<li>人民币</li>"; // $("li:first").after(love1); // $("li:eq(1)").remove(); // $("li:eq(1)").empty(); $("li:eq(1)").replaceWith("<li>紫霞仙子</li>"); $("li").click(function(){ alert("我是li"); }); var li= $("li:eq(0)").clone(true); $("ul").append(li); }); function addLove(){ $("img").attr("src","images/1.png"); } function deleteLove(){ $("img").removeAttr("src"); } </script> </head> <body> <button οnclick="addLove();">添加的女神</button> <button οnclick="deleteLove();">幹掉女神</button> <div id="love"></div> <ul> <li >朱茵</li> <li>珍珍</li> <li>人民币</li> </ul> <img > </body> |