父元素:
parentnode;(沒有相容性問題);
offsetparent; (獲取的是首個獲得(絕對定位或者相對定位)的 元素;最終會找到html;)
子元素:
1、childnodes 屬性。
標準的,它返回指定元素的子元素集合,包括html節點,所有屬性 文字。可以通過nodetype來判斷是哪種型別的節點,只有當nodetype==1時才是元素 節點,2是屬性節點,3是文字節點。 node.childnodes[0] 完全等價於 node.firstchild
2、children 屬性
非標準的,它返回指定元素的子元素集合。經測試,它只返回html節點,甚至不返回文字節點。且在所有瀏覽器下表現驚人的一致。和childnodes 一樣,在firefox下不支援()取集合元素。因此如果想獲取指定元素的第乙個html節點,可以使用children[0]來替代上面的getfirst函式。需注意children在ie中包含注釋節點。
第乙個子元素:
1. 有時候需要獲取指定元素的第乙個html子節點(非屬性/文字節點),最容易想到的就是firstchild屬性。**中第乙個html節點前如果有換行,空格,那麼firstchild返回的就不是你想要的了。可以使用nodetype來判斷下。
function getfirst(elem)2. 可以使用children[0]來替代上面的getfirst函式。}
3.或者利用相容的寫法:
//ie'red';
//ff
'red';
var ofirst=obj.firstelementchild || obj.firstchild;
最後乙個子元素:
1. 模仿getfirst
function getlast(elem)}
2. 可以使用children[len-1]
來代替lastfirst
3.或者利用相容的寫法:
var olast=obj.lastelementchild || obj.lastchild;
上乙個元素:
function prev(elem)while(elem && elem.nodetype != 1);或者:var oprev=obj.previouselementsibling ||obj.previoussibling ;return elem;
}
(previoussibling
: ie將跳過在節點之間產生的空格文件節點(如:換行字元),而mozilla不會這樣——ff會把諸如空格換行之類的排版元素視作節點讀取,因此,在ie中用previoussibling
便可讀取到的上乙個節點元素,在ff中就需要這樣寫:previouselementsibling了。)
下乙個元素:
function next(elem)while(elem && elem.nodetype != 1);或者:var onext =obj.nextelementsibling ||obj.nextsibling; (ie8以下有bug)return elem;
}
(nextsibling
: ie將跳過在節點之間產生的空格文件節點(如:換行字元),而mozilla不會這樣——ff會把諸如空格換行之類的排版元素視作節點讀取,因此,在ie中用nextsibling便可讀取到的下乙個節點元素,在ff中就需要這樣寫:nextelementsibling了。)
刪除乙個元素
obj.parentnode.removechild(obj)
插入到目標元素的前面:
function insertafter(newchild,refchild)else
python walk歷遍目錄
import osimport fnmatch defis file match filename,patterns for pattern in patterns iffnmatch.fnmatch filename,pattern return true return false def fin...
原生JS查詢元素
今天寫了乙個很簡單 很粗暴的通過js根據類來查詢dom元素。為了降低它的粗暴等級 耗費效能 我給了三個等級。首先效能最好的,適合ff,ch,ie8,通過queryselectorall這個api。其次是指定id 最後只能全頁面進行匹配class,不過比較節省的效能的是,在指定class名稱的時候,同...
用enumerate進行索引和元素的歷遍
help enumerate class enumerate object enumerate iterable start iterator for index,value of iterable return an enumerate object.iterable must be anothe...