Js_Dom(2)__Dom基础<方法(重点)>

1.getElementById() 

返回带有指定ID的元素//得到元素对象后就可以获取和更改对象的属性

根据指定的 id 属性值得到对象。返回 id 属性值对应的第一个对象的引用。假如对应的为一组对象,则返回该组对象中的第一个。 如果无符合条件的对象,则返回 null 

var test=document.getElementById(‘test’)

 

2.getElementsByTagName()  

 返回包含带有指定标签名称的所有元素的节点容器。返回元素的顺序是它们在文档中的顺序,把特殊字符串 "*" 传递给 getElementsByTagName() 方法,它将返回文档中所有元素的列表

getElementsByName()返回指定name的集合//好像哪个浏览器有个bug,如果name和id同名了,byId方法取到的是name的对象

<p>666</p>

<input type=’text’ name=’test’ value=’666’>

<script>

var test1=document.getElementsByTagName(‘p’)[0]

var test2=document.getElementsByTagName(‘input’)[0].value

</script>


3.getElementsByClassName()  

       返回包含带有指定类名的所有元素的节点列表容器,顺序是它们在文档中的顺序

var test=document.getElementsByClassName(‘test’)[1]

 

 

4.createElement()   

创建元素节点,配合下面两个方法才有效果,但是没有效果内存中也是创建了的.参数填要创建的元素名


5.appendChild()      

  把新的子节点添加到指定节点。调用者是父亲(添加到末尾)

var p=document.createElement('p')

p.innerHTML='6666'//添加标签内容

document.getElementById('test').appendChild(p)//ptest的最后一个儿子了

 

 

6.insertBefore()   

    在指定的子节点前面插入新的子节点。调用者是父亲(添加到前面)

var p=document.createElement('p')

p.innerHTML='666'

var div = document.getElementById("mydiv")

div.insertBefore(p,div.childNodes[0]);//pdiv的第一个儿子的哥哥了

 

 
7.createAttribute() 

创建属性,参数是属性名


8.setAttributeNode() 

设置属性节点,注意参数传的是attribut不是node,看下面例子


9.getAttributeNode() 

获取属性节点,参数是属性名



<body>

<p id="p1">变红</p>

<p>不变色</p>

<p id="p2">也变红</p>

<script>

var p=document.getElementById('p1')//获取元素节点

varatt=document.createAttribute("style");//创建属性

att.value="color:red;";//设置属性值

p.setAttributeNode(att);//设置属性节点

 

var p2=document.getElementById('p2');//获取元素节点

var att2=document.createAttribute("style");//创建属性

att2.value=p.getAttributeNode('style').nodeValue;//获取属性节点,得到属性

p2.setAttributeNode(att2);//设置属性节点

</script>

</body>




10.getAttribute()     

返回指定的属性值。



11.setAttribute()     

把指定属性设置或修改为指定的值(值存在就替换)。



<body>

<a href="http://www.baidu.com"id="baidu">百度</a>

<script>

var baidu=document.getElementById('baidu')//获取元素节点

document.write(baidu.getAttribute('href'))//获取href属性的值

baidu.setAttribute('href','http://www.sina.cn')//设置href属性的值

</script>

</body>


12. createTextNode()     

 创建文本节点.文本节点没有子元素.

var text=document.createTextNode('hello')//创建文本节点

document.getElementById('p1').appendChild(text)//添加子节点

注意:下面div元素节点的子节点有3个,因为回车算一个空白文本节点

<div>

<li>1</li>

</div>



13.comment 注释节点,没有子节点

①createComment()创建注释节点

var com=document.createComment('hello world!');

document.body.appendChild(com)//因为是注释,所以浏览器翻译文档后不会显示效果可以通过console.log()调试


②appendData()在注释节点里(末尾)添加文本

<body><!--666--></body>

<script>

document.body.childNodes[0].appendData('hello')

console.log(document.body.childNodes[0])

</script>


③deleteData(index,count)从index指定的位置开始删除count个字符

<body><!--666--></body>

<script>

document.body.childNodes[0].deleteData(0,3)

console.log(document.body.childNodes[0])

</script>


④insertData(index,text)从index指定位置插入text文本


⑤replaceData(index,count,text)从index指定位置开始count长度的本文被替换为text文本


substringData(index,count)方法提取从index指定的位置开始count长的字符串


⑦IE8-浏览器将标签名为"!"的元素视作注释节点,所以文档声明<!DOCTYPE html>也被视作注释节点,如果<html>标签外部上下都有注释时,只有firefox可以识别出最下面的注释,其他浏览器都识别不出(体现在document.childNodes.length结果不一样)





14.replaceChild()     

替换子节点,注意调用这个方法的对象一定是被替换者的父亲

<body>

<p id="mytest">666</p>

<script>

var textnode=document.createElement('p');//创建元素节点

textnode.innerHTML='111'//给元素节点添加内容

var item=document.getElementById("mytest")//获取节点

item.parentNode.replaceChild(textnode,item);//替换节点

</script>

</body>

 


15.removeChild()  

   删除子节点,参数是节点,调用者是父亲

document.body.removeChild(document.getElementById("test"))

 

16.cloneNode() 克隆节点,

调用者是自己,参数是true,false.不写默认为true,(true子节点也被克隆,包括所有的事件属性各种,false子节点不被克隆)

<body>

<ul>

<li>1</li>

<li>2</li>

<li>3</li>

</ul>

<div id="div1">

</div>

<script>

var ul=document.getElementsByTagName('ul')[0]

var newchild=ul.cloneNode(true)

document.getElementById('div1').appendChild(newchild)

</script>

</body>





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值