<?xml verson="1.0" encoding="UTF-8" ?>
複製代碼
document.getElementById("id屬性的值")
;====>返回的是一個元素document.getElementsByTagName("標籤的名字");
不管獲取的是一個標籤,仍是多個標籤,最終都是在數組中存儲的,這行代碼的返回值就是一個僞數組(包含多個元素對象)document.getElementsByName("name屬性的值");
====>返回一個僞數組----如下獲取元素的操做,有些瀏覽器不支持css
document.getElementsClassName("類樣式的名字");
====>返回一個僞數組(H5中的)document.querySelector("選擇器的名稱");
根據選擇器的方式獲取元素====>返回一個元素document.querySelectorAll("選擇器的名稱");
根據選擇器的方式獲取元素====>返回一個僞數組名稱 | 節點 | 元素 |
---|---|---|
父級 | parentNode | parentElement |
子級 | childNodes | children |
第一個子級 | firstChild | firstElementChild |
最後一個子級 | lastChild | lastElementChild |
前一個兄弟節點 | previousSibing | previousElement |
後一個兄弟節點 | nextSibing | nextElementSibing |
列舉一個 其餘同理html
/**
*獲取父級元素中第一個子元素
*@param element 父級元素
*@returns {*} 父級元素中的子級元素
*/
function getFirstElement (element){
if(element.firstElementChild){//谷歌火狐支持
return element.firstElementChild;
}else{
var node = element.firstChild;
while(node && node.nodeType != 1){//若是獲取的第一個節點不是標籤的時候
node = node.nextSibling;
}
return node;
}
}
複製代碼
/**
* 獲取某個元素的全部兄弟元素
* @param element 某個元素
* @returns {Array} 兄弟元素
*/
function getSiblings(element) {
if (!element)return;
var elements = [];
var ele = element.previousSibling;
while (ele) {
if (ele.nodeType === 1) {
elements.push(ele);
}
ele = ele.previousSibling;
}
ele = element.nextSibling;
while (ele) {
if (ele.nodeType === 1) {
elements.push(ele);
}
ele = ele.nextSibling;
}
return elements;
}
複製代碼
設置文本內容的幾個屬性node
textContent與innerText的區別數組
textCont獲得全部元素,包括的內容<script>
和<style>
元素,相比之下innerText只顯示"人類可讀"的元素(無隱藏).瀏覽器
textContent和innerHTML的差別bash
設置標籤中間的文本內容,應該使用textContent屬性 (谷歌、火狐支持,IE8不支持),使用innerText屬性(谷歌、火狐、IE8都支持)app
<p id="p1">我是一個P標籤</p>
document.getElementById('p1').ineerText="這是一個P";
複製代碼
(若是這個屬性在瀏覽器中不支持,那麼這個屬性的類型是undefined。)dom
獲取的時候:函數
結論:若是想要(獲取)標籤及內容用innerHTML,若是想要設置標籤使用innerHTML,想要設置文本,用innerText、innerHTML、textContent性能
獲取及設置元素的文本內容的兼容代碼
/**
*設置元素的文本內容
*@param(參數) element 任意元素
*@param text 任意文本內容
*/
function setInnerText(element,text){
if(typeof(element.textContent) == "undefind")){
element.innerText = text;
}else{
element.textContent = text;
}
}
/**
*獲取元素的文本內容
*@param element 任意元素
*@returns {*} 任意元素中的文本內容
*/
function getInnerText(element){
if(typeof(element.textContent)){
return element.innerText;
}else{
return element.textContent;
}
}
複製代碼
//name屬性用來設置分組
<input type="button" value="修改性別" id="btn1"/>
<input type="radio" value="1" name="sex"/>男
<input type="radio" value="2" name="sex"/ id="rad1">女
//封裝獲取ID函數
function my$(id){
return document.getElementById(id);
}
my$("btn").onclick = function(){
my$("rad1").checked = true;
};
複製代碼
setAttribute("屬性的名字",屬性的值);
getAttribute("屬性的名字");
removeAttribute("屬性的名字");
(或者能夠直接設置屬性的值爲空)getAttribute("自定義屬性的名字");
才能得到這個屬性的值(不能直接經過DOM對象的方式來直接獲取該屬性的值)for循環是在頁面加載的時候,執行完畢了
for(var k=0;k<5;k++){};console.log(k);//k=5
事件是在觸發的時候,執行的
例:
<input type="button" value="1"/>
<input type="button" value="1"/>
<input type="button" value="1"/>
//獲取全部的按鈕,分別註冊點擊事件
var btnObjs = document.getElementsByTagName("input");
//循環遍歷全部的按鈕
for (var i = 0; i < btnObjs.length; i++) {
//爲每一個按鈕都要註冊點擊事件
btnObjs[i].onclick = function () {
//把全部的按鈕的value值設置爲默認的值:1
for (var j = 0; j < btnObjs.length; j++) {
btnObjs[j].value = "1";
}
//當前被點擊的按鈕設置爲:2
this.value = "2";
};
}
//console.log(i);//3
複製代碼
------------------------------------------------------記錄於 2019.4.16 JavaScript之DOM基礎