美文网首页
2019-08-28

2019-08-28

作者: 阳光课代表 | 来源:发表于2019-08-28 09:32 被阅读0次

DOM基础

孩子节点-children

<ul id="ul1">
    <li></li>
    <li></li>
</ul>
var oUl = document.getElementById("ul1");
console.log(oUl.children.length); //2
for (var i = 0; i < oUl.children.length; i++) {
    oUl.children[i].style.background = 'red';
}

父亲节点-parentNode

<ul id="ul1">
    <li>abc<a href="javascript:;">隐藏</a></li>
    <li>def<a href="javascript:;">隐藏</a></li>
</ul>

var aA = document.getElementsByTagName('a');
for (var i = 0; i < aA.length; i++) {
    aA[i].onclick = function(){
        this.parentNode.style.display = 'none';
    };
}

第一个直接孩子-firstChild-firstElementChild

<ul id="ul1">
    <li>1</li>
    <li>2</li>
</ul>

var oUl = document.getElementById("ul1");
if (oUl.firstElementChild) { //高级浏览器使用firstElementChild
    oUl.firstElementChild.style.background = 'red';
} else {
    oUl.firstChild.style.background = 'red';
}

注:效果是<li>1</li>变红

三种操作元素属性方式

<input id="txt" type="text" />
<button onclick="fillText()">填写文字</button>

var oTxt = document.getElementById("txt");
oTxt.value = 'abc'; //方式一
oTxt['value'] = 'def'; //方式二
oTxt.setAttribute('value', 'ghi'); //方式三
console.log(oTxt.getAttribute('value')); //ghi
oTxt.removeAttribute('value');

使用className选取元素

<ul id="ul1">
    <li class="box"></li>
    <li></li>
    <li class="box"></li>
</ul>
function getByClassName(oParent, className1){
    var aEles = oParent.getElementsByTagName('*');
    var aRes = [];
    for (var i = 0; i < aEles.length; i++) {
        if (aEles[i].className == className1) {
            aRes.push(aEles[i]);
        }
    }
    return aRes;
}

window.onload = function(){
    var oUl = document.getElementById("ul1");
    var aBox = getByClassName(oUl, 'box');
    console.log(aBox.length); //2
};

创建元素

<input type="text" id="txt"/><button onclick="fillText()">添加</button>
<ul id="ul1"></ul>

function fillText() {
    var oTxt = document.getElementById("txt");
    var oUl = document.getElementById("ul1");
    var oLi = document.createElement('li');
    oLi.innerText = oTxt.value;
    oUl.appendChild(oLi); //放在末尾
    
    var aLi = document.getElementsByTagName('li');
    if (aLi.length == 0) {
        oUl.appendChild(oLi);   
    } else {
        oUl.insertBefore(oLi, aLi[0]); //放在开头
    }
}

删除元素

<ul id="ul1">
    <li>123<a href="javascript:;">删除</a></li>
    <li>145<a href="javascript:;">删除</a></li>
</ul>

var oUl = document.getElementById("ul1");
var aA = document.getElementsByTagName('a');
for (var i = 0; i < aA.length; i++) {
    aA[i].onclick = function() {
        oUl.removeChild(this.parentNode);
    };
}

相关文章

网友评论

      本文标题:2019-08-28

      本文链接:https://www.haomeiwen.com/subject/pxauectx.html