2019-08-28

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);
    };
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容