<?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基础