节点增删改

假设HTML 结构如下

<button id="btn1">增加</button>
<button id="btn2">删除</button>
<button id="btn3">修改</button>
<button id="btn4">获取节点</button>
<div id="target"></div>

js 代码如下

let btn1 = document.getElementById('btn1');
let btn2 = document.getElementById('btn2');
let btn3 = document.getElementById('btn3');
let btn4 = document.getElementById('btn4');
let target = document.getElementById('target');

btn1.addEventListener('click', btnFn1, false);
btn2.addEventListener('click', btnFn2, false);
btn3.addEventListener('click', btnFn3, false);
btn4.addEventListener('click', btnFn4, false);

function btnFn1() {
    let ul = document.createElement('ul');
    ul.setAttribute('id', 'ul');

    let frag = document.createDocumentFragment();

    for (let i = 0; i < 5; i++) {
        let li = document.createElement('li');
        li.setAttribute('id', `li-${i}`);
        li.setAttribute('class', `li-${i}`);
        li.innerHTML = i;
        frag.appendChild(li);
    }
    ul.appendChild(frag);
    target.appendChild(ul);
}
function btnFn2() {
    let li3 = document.getElementById('li-2');
    target.firstChild.removeChild(li3);
}
function btnFn3() {
    let oldNode = document.getElementById('li-1');
    let newNode = document.createElement('li');
    newNode.setAttribute('id', 'li-5');
    newNode.setAttribute('class', 'li-5');
    newNode.innerHTML = 5;
    target.firstChild.replaceChild(newNode, oldNode);
}

function btnFn4() {
    let ul = document.getElementsByTagName('ul')[0];
    let node = document.createElement('p');
    let parentNode = ul.firstChild.parentNode;
    let nextSibling = ul.firstChild.nextSibling;
    let previousSibling = ul.firstChild.previousSibling;
    node.innerHTML = `父节点:${
        parentNode != null ? parentNode.getAttribute('id') : ''
    }
                    ---后一个兄弟节点:${
                        nextSibling != null
                            ? nextSibling.getAttribute('id')
                            : '无后一个兄弟节点'
                    }
                    ---前一个兄弟节点:${
                        previousSibling != null
                            ? previousSibling.getAttribute('id')
                            : '无前一个兄弟节点'
                    }`;
    target.appendChild(node);
}
Last Updated:
Contributors: af, zhangfei