中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

原生js選擇器、節點屬性

發布時間:2020-10-06 14:51:14 來源:網絡 閱讀:14518 作者:李生虎lsh 欄目:web開發
  1. getElementById():Document對象的該方法通過id獲取元素,在低于IE8版本的瀏覽器中,getElementById()對匹配元素的ID不區分大小寫,而且也返回匹配name屬性的元素。

  2. getElementsByName():Document對象的該方法通過name屬性獲取html元素,該函數定義在HTMLDocument類中,而不在Document類中,所以它只針對HTML文檔可用,在XML文檔中不可用。,在IE中,getElementsByName()也返回id屬性匹配指定值的元素。為了兼容,應該小心謹慎,不要將同樣的字符串同時用做名字和id。為某些html元素設置name屬性將自動在Window對象中創建匹配指定值的元素。如果給定的名字只有一個元素,自動創建的文檔屬性對應的該值是元素本身。如果有多個元素,該文檔屬性的值是一個NodeList對象,它表現為一個包含這些元素的數組。

  3. getElementsByTagName():Document對象的這個方法用來選擇指定類型(標簽名)的所有HTMLXML元素。Element類也定義了這個方法,它只選取調用該方法的元素的后代元素。

  4. document.bodydocument.head分別用來獲取HTML文檔中<body><head>元素。Document類的documentElement屬性指代文檔的根元素。

  5. 結點列表和HTML集合:getElementsByName()getElementsByTagName()都返回NodeList對象,而類似的document.p_w_picpathdocument.forms的屬性為HTMLCollection對象。這兩個對象不是歷史文檔的一個靜態快照,而通常是實時的,并且當文檔變化時他們所包含的元素列表能隨之改變,這是其中一個最重要和令人驚訝的特性。假設在一個沒有<div>元素的文檔中調用getElementsByTagName(‘div’),此時返回值是一個length0NodeList對象。如果再在文檔中插入一個新的<div>元素,此元素將自動成為NodeList的一員,并且它的length屬性變成1。通常,NodeListHTMLCollection的實時性非常有用。但是,如果在迭代一個NodeList對象時在文檔中添加或刪除元素,首先會需要對NodeList對象生成一個靜態的副本。

    var tmp=Array.prototype.slice.call(nodelist,0);

6.getElementsByClassName():通過類名來選取元素。在HTML文檔和HTML元素上都可以調用getElementByClassName(),它的返回值是一個實時的NodeList對象,包含文檔或元素所有匹配的后代節點。該方法只需要一個字符串參數,但是該字符串可以由多個空格隔開的標識符組成。只有當元素的class屬性值包含所有指定的標識符時才匹配,但是標識符的順序是無關緊要的。注意,class屬性和geElementsByClassName()方法的類似標識符之間都是用空格隔開的,而不是逗號。

    如今的Web瀏覽器依賴于文檔開頭處對<!DOCTYPE>聲明的嚴格程度來選擇“怪異模式”或“標準模式”方式顯式HTML文檔。怪異模式是為了向后兼容而存在的,其中一個怪異行為就是class屬性中和css樣式表中的類標識符不區分大小寫。geElementByClassName()方法使用同樣的樣式匹配算法。如果文檔以怪異模式渲染,該方法將執行不區分大小寫的字符串比較;否則,該比較區分大小寫。該方法在IE8及以下未實現。

7.querySelectorAll():它接受包含一個CSS選擇器的字符串參數,返回一個表示文檔中匹配選擇器的所有元素的NodeList對象。該對象并不是實時的:它包含在調用時刻所匹配的元素,但它并不更新后續文檔的變化。如果沒有匹配的元素,querySelectorAll()將返回一個空的NodeList對象。如果選擇器字符串非法,querySelectorAll()將拋出一個異常。此外,文檔對象還定義了querySelector()方法:返回第一個匹配的元素(以文檔順序)或者如果沒有匹配的元素就返回null

    這兩個方法在Element節點中也有定義(并且也在DocumentFragment節點中)。在元素上調用時,指定的選擇器仍然在整個文檔中進行匹配,然后過濾出結果集以便它只包含指定元素的后代元素。這看起來是違反常規的,因為它意味著選擇器字符串能包含元素的祖先而不僅僅是上述所匹配的元素。

    CSS定義了“:first-line”和“:first-letter:等偽元素。在CSS中,他們匹配文檔節點的一部分而不是實際元素。如果和querySelectorAll()或querySelector()一起使用它們是不匹配的。而且,很多瀏覽器拒絕返回“:link”和“:visited”等偽類的匹配結果,因為這會泄露用戶的瀏覽歷史記錄。

    所有當前的瀏覽器都支持querySelector()和querySelectorAll()方法。但是注意,這些方法的規范并不要求支持CSS3選擇器:鼓勵瀏覽器支持和在樣式表中一樣的選擇器集合。當前的瀏覽器除了IE都支持CSS3選擇器。IE7IE8支持CSS2選擇器。

8.Document對象,它的Element對象和文檔中表示文本的Text對象都是Node對象。Node定義了以下重要的屬性:

    1)  parentNode:該節點的父節點,或者針對類似Document對象應該是null,因為他沒有父節點。

    2)  childNodes:只讀的類數組對象(NodeList對象),它是該節點的子節點的實時表示。

    3)  firstChildlastChild:該節點的子節點中的第一個和最后一個,如果該節點沒有子節點則為null

    4)  nextSiblingpreviousSibling:該結點的兄弟結點中的前一個和下一個。具有相同父節點的兩個節點為兄弟節點。節點的順序反映了它們在文檔中出現的順序。這兩個屬性將節點之間以雙向鏈表的形式連接起來。

    5)  nodeType:該節點的類型,9代表Document節點,1代表Element節點,3代表Text節點,8代表Comment節點,11代表DocumentFragment節點。

    6)  nodeValueText節點或Comment節點的內容。

    7)  nodeName元素的標簽名,以大寫的形式表示。

9.注意,TextComment節點沒有children屬性,它意味著Node.parentNode屬性不可能返回TextComment節點。任何ElementparentNode總是另一個Element,或者,追溯到樹根的DocumentDocumentFragment節點。

10.Element屬性:firstElementChildlastElementChildnextElementSiblingpreviousElementSiblingchildElementCount(子元素的數量。返回值和children.length值相等)以上和Node對象的屬性類似,只是這些屬性只代表Element

11.HTML屬性作為Element屬性:HTML屬性名不區分大小寫,但JavaScript屬性名則大小寫敏感。從HTML屬性名轉換到JavaScript屬性名應該采用小寫。但是,如果屬性名包含不止一個單詞,則將除了第一個單詞以外的單詞的首字母大寫,例如:defaultCheckedtabIndex。有些HTML屬性名在JavaScript中是保留字。對于這些屬性,一般的規則是為屬性名加前綴“html”。例如,HTMLfor屬性(<lable>元素)在JavaScript中變為htmlFor屬性。“class”在JavaScript中是保留字(但還未使用),它是HTML非常重要的class屬性,是上面規則的一個例外:在JavaScript代碼中它變為className。表示HTML屬性的值通常是字符串。當屬性為布爾值或數值,屬性也為對應的類型,而不是字符串。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临湘市| 白山市| 洪雅县| 吉木乃县| 柘荣县| 尤溪县| 长兴县| 佛教| 临邑县| 白沙| 潮州市| 高安市| 崇仁县| 澄江县| 南宫市| 永顺县| 拉萨市| 左云县| 台州市| 南川市| 辛集市| 房产| 灯塔市| 河间市| 大安市| 施甸县| 崇左市| 正阳县| 浙江省| 绥化市| 武夷山市| 无为县| 凉山| 洪江市| 安徽省| 合作市| 桂阳县| 宁强县| 建平县| 太康县| 永平县|