js相關筆記(十)

2022-08-27 02:24:10 字數 3908 閱讀 9386

1.禁用文字框 可以使用disabled屬性,但是使用了disabled屬性後提交表單時會出現提交的成員中沒有這個文字框,所以禁用文字框可以使用 readonly屬性,表單提交會提交設定了readonly屬性的表單而不會提交設定了disabled屬性的表單。

2.在函式中使用this,函式載入時只載入函式名不載入函式體,所以誰呼叫了當前的函式,這個this就指向誰,行內繫結事件的方式使用的是第三種定義函式的方式,new function("fn();");,使用這種方式導致呼叫者不再是當前事件源,而是window物件,如同是在乙個匿名函式體裡面新增了一段window.fn();,如:function()這樣的**,所以此時的this不再代表當前事件源,所以如果使用行內事件繫結時,記得要把當前物件傳遞進去,如,這樣可以在函式裡面使用當前物件了,是通過引數方式使用當前事件源物件的。

3.設定option標籤的selected屬性時注意,當點選選中某一項時  設定這個option的selected屬性為 true; 當點選不選中某一項時 就設定 設定這個option的selected屬性為 false; 但是這種做法在ie678中無效 ,只能設定不能取消 ,就算你 使用操作屬性的方法 getattribute()、setattribute()、removeattribute() 在ie678中也無效, 所以你如果想取消當前選中那一項時可以設定其它項為選中的項,那麼缺省會取第乙個設定為selected的選中項,然後會取消其它設定為selected的項。

4.在webstrom中新建檔案時,如果檔名中帶有 / 斜槓的話,會進行層級目錄的建立  如你建立了乙個 get/set/remove.html ,那麼實際建立的是乙個get資料夾下包含了乙個set資料夾,然後set資料夾下有乙個remove.html的檔案。

5.陣列中的push方法,是將新新增的元素新增到最後面,配套的pop方法,是將最後面的元素取出來並且從原陣列中移除取出來的元素。

6.排他思想,先清除掉全部的,然後再新增自己的。

7.使用物件的操作屬性的方法來新增或者獲取及刪除時,要以頁面標籤實際的屬性為主,而通過物件的操作屬性 物件.屬性或者物件["屬性"]時,要以頁面標籤轉換為物件後的物件的屬性為主,如頁面標籤轉換後的class屬性不再是class屬性了,而是classname,但是使用getattribute()/setattribute()/removeattribute()時,是以頁面的標籤明碼顯示的屬性為主,如獲取class屬性則是物件.getattribute("class");而不是物件.getattribute("classname");,設定與刪除也是如此。

8.通過訪問關係獲取節點的方式:

◆直接獲取當前節點:document.getelementbyid("id");也能通過類名 標籤名 名字 來獲取

◆間接獲取上乙個兄弟節點:當前節點.previouselementsibling,但是這種獲取的方式在ie678中不支援,因為在ie678中使用的是當前節點.previoussibling,可是隨著時代的更新,節點的型別增多,比如元素節點啊、屬性節點、文字節點等等,所以當前節點.previoussibling不但可以獲取元素節點還有可能會獲取到其它節點,於是乙個新的屬性previouselementsibling出現了,它用來專門獲取元素節點,但是為了相容ie678,所以需要採取乙個新的寫法,如:var pre=當前節點.previouselementsibling || 當前節點.previoussibling;,這樣表示,如果ie678訪問則會使用當前節點.previoussibling,否則就使用當前節點.previouselementsibling,通過||運算子,表面上是拿兩個值作為bool值來進行邏輯判斷,如果哪一邊為true就會返回先為true的那一邊的實際值。

◆間接獲取下乙個兄弟節點:當前節點.nextelementsibling,但是這種獲取的方式在ie678中不支援,因為在ie678中使用的是當前節點.nextsibling,可是隨著時代的更新,節點的型別增多,比如元素節點啊、屬性節點、文字節點等等,所以當前節點.previoussibling不但可以獲取元素節點還有可能會獲取到其它節點,於是乙個新的屬性nextelementsibling出現了,它用來專門獲取元素節點,但是為了相容ie678,所以需要採取乙個新的寫法,如:var pre=當前節點.nextelementsibling || 當前節點.nextsibling;,這樣表示,如果ie678訪問則會使用當前節點.nextsibling,否則就使用當前節點.nextelementsibling,通過||運算子,表面上是拿兩個值作為bool值來進行邏輯判斷,如果哪一邊為true就會返回先為true的那一邊的實際值。

◆間接獲取父節點:當前節點.parentnode;表示獲取當前節點的父節點

◆間接獲取自己的第乙個子節點:當前節點.firstelementchild,但是這種獲取的方式在ie678中不支援,因為在ie678中使用的是當前節點.firstchild,可是隨著時代的更新,節點的型別增多,比如元素節點啊、屬性節點、文字節點等等,所以當前節點.firstsibling不但可以獲取元素節點還有可能會獲取到其它節點,於是乙個新的屬性firstelementchild出現了,它用來專門獲取元素節點,但是為了相容ie678,所以需要採取乙個新的寫法,如:var pre=當前節點.firstelementchild || 當前節點.firstchild;,這樣表示,如果ie678訪問則會使用當前節點.firstchild,否則就使用當前節點.firstelementchild,通過||運算子,表面上是拿兩個值作為bool值來進行邏輯判斷,如果哪一邊為true就會返回先為true的那一邊的實際值。

◆間接獲取自己的最後乙個子節點:當前節點.lastelementchild,但是這種獲取的方式在ie678中不支援,因為在ie678中使用的是當前節點.lastchild,可是隨著時代的更新,節點的型別增多,比如元素節點啊、屬性節點、文字節點等等,所以當前節點.lastchild不但可以獲取元素節點還有可能會獲取到其它節點,於是乙個新的屬性lastelementchild出現了,它用來專門獲取元素節點,但是為了相容ie678,所以需要採取乙個新的寫法,如:var pre=當前節點.firstelementchild || 當前節點.lastchild;,這樣表示,如果ie678訪問則會使用當前節點.lastchild,否則就使用當前節點.lastelementchild,通過||運算子,表面上是拿兩個值作為bool值來進行邏輯判斷,如果哪一邊為true就會返回先為true的那一邊的實際值。

◆間接獲取所有的子節點:當前節點.children,獲取所有的元素節點 但是在ie678中還可能會獲取注釋節點,當前節點.childnodes,獲取所有的子節點 ,會包括元素節點、屬性節點、文字節點等等,需要自己使用迴圈來判斷,取你想要的節點然後放到乙個新的陣列中去,比如把所有的元素節點放到乙個陣列中去。

★如果你像找到自己所有的兄弟節點,那麼可以使用當前節點.parentnode.children,這個可以找到所有的兄弟元素節點,而當前節點.parentnode.childnodes,這個可以找到所有的兄弟節點,包括元素節點、屬性節點、文字節點等等,可以自己使用for迴圈把想要的節點放到乙個新的陣列中去。

9.獲取節點的名稱、節點的型別、節點的值

◆獲取節點的名稱:當前節點.nodename,節點分為很多種,元素節點的名稱就是標籤名,屬性節點的名稱就是屬性名,文字節點的名稱統一叫做#text。

◆獲取節點的型別:當前節點.nodetype,節點分為很多種,元素節點的型別 是1,屬性節點的型別是2,文字節點的型別是3。

◆獲取節點的值:當前節點的.nodevalue,節點分為很多種,元素節點的值不是那個value屬性而是nodevalue屬性,預設元素節點的值都為null,屬性節點的值為對應屬性值,如果你獲取的屬性節點為value屬性,那麼對應的節點的值(nodevalue)就是value屬性的屬性值,如果你獲取的屬性節點是id屬性,那麼對應的節點的值則為id屬性的屬性值,文字節點的的值為對應的文字值,也就是純文字。

★如果想獲取元素節點的value屬性的值,那麼請先獲取這個元素節點的對應的value屬性節點,通過元素節點.getattributenode("value");來獲取,然後通過獲取屬性節點的值(nodevalue)來獲取value屬性的值。

css相關筆記(十)

1.a鏈結有自己預設的字型顏色,所以不會繼承父容器的字型顏色的。2.其實設定 乙個容器的高度和寬度就能夠實現解析度放大或者縮小時整體結構不會有很大的變化,但是 影響其因素如果包括 padding或者內部元素浮動方向不同 就會出現例外,那個時候就算你設定了具體的高寬都會出現內容掉下來並且還會字型不會疊...

js相關筆記(十一)

1.陣列的那些遍歷方法foreach map filter every some,在ie678中不存在,dom物件的屬性操作方法getattribute setattribute removeattribute在ie678中也不存在,通過控制台列印的時候發現,返回的是乙個object型別的 也就是空...

js相關筆記(十四)

1.給元素新增非靜態定位的定位屬性時,你如果不設定它的left和top或者bottom再或者right屬性時,他就裝作以標準文件流的方式找個位置待著,但是它的確不佔空間,很像是左浮動,也許非靜態定位不設定left top right bottom屬性時就等於float left 定位的時候left ...