js dom - 基本操作(增删改查)

 

以下展示了原型链的继承关系:

如: 在Node中定义的方法,它下边的所有文档 及文档元素都可以调用

 

 1、document.getElementByTagName()方法定义在 Document.prototype 上和 Elment.prototype 

所以,下边选择元素可以这样写:

<div id="box">
    <div class="d">
        <span>345</span>
    </div>
    <span></span>
</div>
<script>
let div = document.getElementsByClassName('d')[0]
let r = div.getElementsByTagName('span')[0] // htmlElment上也可以使用此方法
console.log(r) // <span>345</span>
</script>

 2、在HTMLDocument.prototype定义了一些常用的属性,其中body和head属性分别指body元素和head元素

// document相当于 HTMLDocument 的实例,所以根据原型链能访问到HTMLDocument
// 原型上的属性
document.body
document.head

3、在Document.prototype 上定义了documentElement属性,指代 <html>元素

document.documentElement // <html>··· ···</html>

增加节点

1、document.createElement 创建一个元素

let div = document.createElement('div')

2、document.createTextNode 创建文本节点

 let div = document.createTextNode('lxc') // 创建文本节点

3、document.createComment 创建注释节点

 let div = document.createComment('this is comment') // 创建注释节点

 

插入节点

1、DOM.appendChild( text )  插入节点 - 相当于剪切

<div id="box"></div>
<script>
let div = document.getElementById('box')
let text = document.createTextNode('吕星辰')
div.appendChild(text)
div.appendChild(text) // 相当于替换或者是剪切,而不是叠加
</script>

2、DOM.insertBefore( span, i )  在dom中插入span标签,且在 i 标签之前

<div id="box">
    <i class="i"></i>
</div>
<script>
    let div = document.getElementById('box')
    let span = document.createElement('span')
    let i = document.getElementsByClassName('i')[0]
    div.insertBefore(span, i)
</script>

以下是Element节点的一些属性

3、DOM.innerHTML  在dom中插入元素、文本,会直接覆盖掉原先的,直接写 DOM.innerHTML 是取值,有等号 为赋值

<div id="box">
    <i class="i"></i>
</div>
<script>
    let div = document.getElementById('box')
    div.innerHTML = 'lxc'
</script>

也可以追加:DOM.innerHTML + =  '123'

也可以插入元素:

<div id="box"></div>
<script>
    let div = document.getElementById('box')
    div.innerHTML = "<span style='color: #fff; padding: 10px; background: brown;'>123</span>"
</script>

 

 

4、DOM.innerText 在dom中添加文本、或者取文本,添加文本时,相当于覆盖原先内容。

老版本火狐不兼容!

 

Element节点的一些方法

5、ele.setAttribute ( 'class', 'value' ) 设置元素的属性( 也可以设置系统没有的属性 )

6、ele.getAttribute( 'class' ) 获取 元素的属性值

补充:

className 可以获取元素的class值 ,或 修改class值

<div class="son">123</div>
<script>
    let div = document.getElementsByClassName('son')[0]
    div.className = 'lxc'
    console.log(div.className) // 'lxc'
</script>

 

删除节点

1、parent.removeChild(dom)   删除dom中的子节点,  返回的是删除的那个子元素, 相当于剪切( 只能删除直接子节点 )

<div id="box">
    <i class="i"></i>
    <span class="span"></span>
</div>
<script>
    let div = document.getElementById('box')
    let i = document.getElementsByTagName('i')[0]
    let span = document.getElementsByClassName('span')[0]
    div.removeChild(i)
</script>

 

2、self.remove()   自己删除自己, 无返回结果,直接销毁了

<div id="box">
    <i class="i"></i>
</div>
<script>
    let div = document.getElementById('box')
    let i = document.getElementsByTagName('i')[0]
    i.remove()
</script>

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值