這是我參與8月更文挑戰的第7天,活動詳情查看:8月更文挑戰javascript
根據id獲取dom元素對象css
var parent = document.getElementById('parent');
console.log(parent);
複製代碼
var lis = parent.getElementsByTagName('li'); // 此時要獲取id爲parent的ul下的全部li,此時context就是parent
console.log(lis);
複製代碼
在上下文中,根據元素class名獲取元素集合html
var someBox = document.getElementsByClassName('some-box');
console.log(someBox);
var child = parent.getElementsByClassName('child');
console.log(child);
複製代碼
經過name屬性獲取元素對象,通常用於表單元素集合java
var input = document.getElementsByName('inputField');
console.log(input);
複製代碼
獲取html元素對象node
console.log(document.documentElement);
複製代碼
獲取body元素對象數組
console.log(document.body);
複製代碼
var winW = document.documentElement.clientWidth || document.body.clientWidth;
console.log(winW);
複製代碼
var winH = document.documentElement.clientHeight || document.body.clientHeight;
console.log(winH);
複製代碼
context.querySelector(css選擇器) 獲取一個
context.querySelectorAll(css選擇器) 獲取全部
複製代碼
var single = document.querySelector('.some-box');
console.log(single);
var multi = document.querySelectorAll('.some-box');
console.log(multi);
複製代碼
在html中全部的內容都成爲節點(node)。節點是經過節點屬性描述節點間關係的,而且根據節點關係獲取元素對象;瀏覽器
DOM節點:markdown
節點 | nodeType | nodeName | nodeValue |
---|---|---|---|
元素節點 | 1 | 大寫標籤名 | null |
文本節點 | 3 | #text | 文本內容 |
註釋節點 | 8 | #comment | 註釋內容 |
document | 9 | #document | null |
注意:換行和空格都是文本節點
app
var parent = document.getElementById('parent');
var second = document.getElementById('second');
複製代碼
獲取當前元素節點的全部子節點,屬性值是集合dom
console.log(parent.childNodes);
複製代碼
獲取當前元素的全部元素子節點,屬性值是集合
console.log(parent.children);
複製代碼
獲取當前元素的第一個子節點
console.log(parent.firstChild);
複製代碼
獲取當前元素的第一個元素子節點
console.log(parent.firstElementChild);
複製代碼
獲取當前元素的最後一個子節點
console.log(parent.lastChild);
複製代碼
獲取當前元素的最後一個元素子節點
console.log(parent.lastElementChild);
複製代碼
獲取當前元素的父親節點,屬性值是對象
console.log(second.parentNode);
複製代碼
獲取上一個哥哥節點
console.log(second.previousSibling);
複製代碼
獲取上一個元素哥哥節點
console.log(second.previousElementSibling);
複製代碼
獲取下一個弟弟節點
console.log(second.nextSibling);
複製代碼
獲取下一個元素弟弟節點
console.log(second.nextElementSibling);
複製代碼
parent.lastElementChild.firstElementChild.innerHTML = '我是經過dom節點屬性添加的';
parent.lastElementChild.firstElementChild.style.backgroundColor = 'red';
parent.lastElementChild.firstElementChild.onclick = function () {
alert('這是經過DOM節點屬性關係綁定的事件')
};
複製代碼
var newDiv = document.createElement('div');
newDiv.innerHTML = '我是新建的div';
newDiv.style.backgroundColor = 'red';
newDiv.style.width = '100px';
newDiv.style.height = '100px';
newDiv.onclick = function () {
alert('我是新建div的點擊事件');
};
複製代碼
var wrapper = document.getElementById('wrapper');
var obj = wrapper.appendChild(newDiv);
複製代碼
var originExist = document.getElementById('originExist');
wrapper.removeChild(originExist);
複製代碼
var insertResutl = wrapper.insertBefore(newDiv, originExist);
console.log(insertResutl);
複製代碼
var cloneWrapper = wrapper.cloneNode();
console.log(cloneWrapper === wrapper); #### false 克隆出來的和原來的節點沒有關係
複製代碼
var attributeBox = document.querySelector('#attributeBox');
attributeBox.setAttribute('name', '江外琉璃');
attributeBox.setAttribute('age', '10');
複製代碼
var name = attributeBox.getAttribute('name');
console.log(name);
複製代碼
attributeBox.removeAttribute('age');
複製代碼