先說一下js的獲取方法,其要比jquery的方法麻煩很多,後面以jquery的方法作對比
js的方法會比jquery麻煩很多,主要則是因為ff瀏覽器,ff瀏覽器會把你的換行也當成dom元素
原生的js獲取id為test的元素下的子元素。可以用:
比如:
var a = docuemnt.getelementbyid("dom").getelementsbytagname_r("div"); 這樣是沒有問題的
此時a.length=3;
但是我們現在換一種方法獲取就是我上章提到的var b = document.getelementbyidx_x("dom").childnodes;如果 這樣alert(b.length)ie瀏覽器上沒問題還是3,但是在ff瀏覽器上會提示是4,這就是因為ff把換行也當做乙個元素了。
所以我們必須處理一下才能用js的那些屬性。處理思想很簡單就是遍歷一下這些元素。把元素型別為空格而且是文字都刪除。處理函式是這樣的
function del_space(elem)
}上述函式遍歷子元素,當元素裡面有節點型別是文字並且該節點的節點值是空的。就把他刪除。
nodenames可以得到乙個節點的節點型別,/\s/是非空字元在js裡的正規表示式。前面加!,則表示是空字元
test() 方法用於檢測乙個字串是否匹配某個模式.語法是: regexpobject.test(string)
如果字串 string 中含有與 regexpobject 匹配的文字,則返回 true,否則返回 false。
nodevalue表示得到這個節點裡的值。
removechild則是刪除元素的子元素。
下面就是重點了啊!
jquery.parent(expr) 找父親節點,可以傳入expr進行過濾,比如$("span").parent()或者$("span").parent(".class")
jquery.parents(expr),類似於jquery.parents(expr),但是是查詢所有祖先元素,不限於父元素
jquery.children(expr).返回所有子節點,這個方法只會返回直接的孩子節點,不會返回所有的子孫節點
jquery.contents(),返回下面的所有內容,包括節點和文字。這個方法和children()的區別就在於,包括空白文字,也會被作為乙個jquery物件返回,children()則只會返回節點
jquery.prev(),返回上乙個兄弟節點,不是所有的兄弟節點
jquery.prevall(),返回所有之前的兄弟節點
jquery.next(),返回下乙個兄弟節點,不是所有的兄弟節點
jquery.nextall(),返回所有之後的兄弟節點
jquery.siblings(),返回兄弟姐妹節點,不分前後
jquery.find(expr),跟jquery.filter(expr)完全不一樣。jquery.filter()是從初始的jquery物件集合中篩選出一部分,而jquery.find()的返回結果,不會有初始集合中的內容,比如$("p"),find("span"),是從p元素開始找,等同於$("p span")
jquery獲取父級元素 子級元素 兄弟元素的方法
jquery.parent expr 找父親節點,可以傳入expr進行過濾,比如 span parent 或者 span parent class jquery.parents expr 類似於jquery.parents expr 但是是查詢所有祖先元素,不限於父元素 jquery.childre...
jquery獲取父級元素 子級元素 兄弟元素的方法
jquery.parent expr 找父親節點,可以傳入expr進行過濾,比如 span parent 或者 span parent class jquery.parents expr 類似於jquery.parents expr 但是是查詢所有祖先元素,不限於父元素 jquery.childre...
JQuery 獲取父級元素 同級元素 子元素等
例 div div id div 1 這是內容1 div div id div 2 這是內容2 div div id div 3 這是內容3 div div id div 4 這是內容4 div div id div 5 這是內容5 div div id div 6 這是內容6 div id div...