这是我参与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');
复制代码