使用jQuery操作DOM ,一些屬性

1、基本過濾選擇器
此項選擇器搭配基本選擇器可以講佔到實際選擇器應用的90%以上(可由document.getElementById及節點nodeChilds得知)

:first//(選取第一個元素)
:last//(選取最後一個元素)
:even//(選取索引是偶數的所有元素)
:odd//(選取索引是奇數的所有元素)
:eq(index)//(選取索引等於index的元素)
:gt(index)//(選取索引大於index的元素)
:lt(index)//(選取索引小於index的元素)
:header//(選取所有的h1,h2,h3等標題元素)
:animated//(選取當前正在執行動畫的所有元素)

2、內容過濾選擇器

:contains(text)//選取含有文本內容爲text的元素
:empty//選取不包含子元素或者文本的空元素
:has(selector)//選取含有選擇器所有匹配的元素的元素
:parent//選取含有子元素或者文本的元素

3、可見性過濾選擇器
對於<input type="hidden"?/>不要考慮對其應用任何css屬性。That's no way。

:hidden//選取所有不可見的元素(包括<input type="hidden" />、<div style="display:none">和<div style="visibility:hidden;">;若只選取<input type="hidden" />使用$("input:hidden")
:visible//選取所有可見元素

4、屬性選擇過濾器
在ie6中對css的屬性過濾選擇器不起作用,而jQuery的屬性選擇過濾器經測試後在ie6中有效。(6.0之前不起作用)想要了解^ $ *可參考相關正則表達式資料。

[attribute]//選取擁有此屬性的元素
[attribute=value]//選取屬性的值爲value的元素
[attribute!=value]//選取屬性的值不爲value的元素
[attribute^=value]//選取屬性的值以value開始的元素
[attribute$=value]//選取屬性的值以value結束的元素
[attribute*=value]//選取屬性的含有value的元素
[selector1][selector2][selectorN]//屬性選擇器合併成一個複合屬性選擇器,注意此處爲屬性選擇器的並集,如$("div[id][class$='Bar']"

5、子元素選擇過濾器
同上面的屬性選擇器一樣,原先的css規則對ie6不起作用,經過jQuery可以選定該類元素。

:nth-child(index/even/odd/equation)//選取第index個子元素或者奇偶元素
:first-child//選取每個父元素的第一個元素(返回整個文檔中每個元素的第一個子元素),如$("ul li:first-child");選擇每個<ul>中第1個元素
:last-child//選取每個父元素的最後一個元素
:only-child//若某子元素是其父元素中惟一的子元素,將會被匹配

6、表單對象屬性過濾選擇器

:enabled//選擇所有可用元素,例$("#form1:enabled")
:disabled//選取所有不可用元素
:checked//選取所有被選中元素(checkbox,radio)
:selected//選取所有被選中元素(下拉列表)

7、表單選擇器

:input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden

 




使用jQuery操作DOM

DOM(Document Object Model)文檔對象模型,是一種與瀏覽器、平臺、語言無關的接口,使用該接口可以輕鬆地訪問頁面中所有的標準組件。

DOM操作分爲三個方面:DOM Core(核心)、HTML-DOM和CSS-DOM

1) DOM Core:常使用getElementByID(),getElementsByTagName(),getAttribute()和setAttribute()

2) HTML-DOM:如document.forms,element.src

3) CSS-DOM:如element.style.color="#f00"

查找節點 1、查找元素節點:使用jQuery選擇器器,例$("ul li:eq(0)").text()獲取<ul>中第1個<li>節點內的文本內容; 2、查找屬性節點:使用attr()方法獲取節點屬性值。當attr()方法參數爲一個時得到屬性值,例$("a:eq(0)").attr("href")獲取第一個<a>的href屬性;

創建節點

1、創建元素節點:包括兩個步驟,一是創建新元素,二是將新元素插入到文檔中(父元素之中);

1 $(function(){
2   var $p=$("<p></p>");//不可使用$("<p>")或$("<P>"),可使用$("<p/>")
3   $p.text("一段文字");
4   $("body").append($p);
5   });

2、創建文本節點

1 <P>$(function(){
2   var $p=$("<p>一段文字</p>");
3   $("body").append($p);
4   });</P>

3、創建屬性節點(與創建文本節點類似)

插入節點

append()//向每個匹配的元素內部追加內容

appendTo()//將所匹配的元素追加到指定的元素中;$(a).appendTo(b)將a追加到b中

prepend()//向每個匹配的元素內部前置內容,如$("p").prepend("<b>您好</b>");產生<p><b>您好<b>Walkingp</p>

prependTo()//將所匹配的元素前置到指定的元素中。如$("<b>您好</b>").prependTo("p");

after()//在每個匹配的元素之後插入內容,如$("p").prepend("<b>您好</b>");產生<p>Walkingp</p><b>您好</b>

insertAfter()//將所有匹配元素插入到指定元素的後面,如$("<b>您好</b>").insertAfter("<p>");

before()//在所匹配的元素之前插入內容,如$("p").before("<b>您好</b>")產生:<b>您好</b><p>walkingp</p>

insertBefore()//將所匹配的元素插入到指定的元素的前面,如$("<b>您好</b>").insertBefore("p")

刪除節點

1、remove()方法//從DOM中刪除所匹配的元素,如$("ul li:eq(1)").remove();//刪除第2個<li>元素節點,值得注意的是,此方法應該對應js對象方法中的 removeChild,removeChild方法移除節點並未真正釋放,可以重新引用此節點。

01 <scripttype="text/javascript">
02 document.onreadystatechange=function(){
03     var ul=document.getElementsByTagName("ul")[0];
04     var li=ul.removeChild(ul.childNodes[0]);
05     for(i=0;i<ul.childNodes.length;i++)
06     {
07         ul.removeChild(ul.childNodes[i]);
08     }
09     ul.appendChild(li);
10 }
11 /*使用jQuery
12 $(function(){
13     var $li=$("ul li:eq(0)").remove();
14     $("ul").append($li);
15 });*/
16 </script>
17 </head>
18 <body>
19 <ul>
20     <li>項目一</li>
21     <li>項目二</li>
22     <li>項目三</li>
23 </ul>

查看示例

2、empty()方法:清空節點,注意此方法並不刪除節點,因此對於上面一個dom,使用如下代碼

1 $(function(){
2     var $li=$("ul li:eq(0)").empty();
3 });

生成效果

www.51obj.cn

複製節點

clone()方法:克隆匹配的DOM元素並且選中這些克隆的副本

1 <scripttype="text/javascript">
2 $(function(){
3     $("button").click(function(){
4          $(this).clone().insertAfter(this);
5      });
6 });
7 </script>
8 <button>複製我&clubs;</button>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章