python操作dom_操作DOM
由于HTML⽂档被浏览器解析后就是⼀棵DOM树,要改变HTML的结构,就需要通过JavaScript来操作DOM。
始终记住DOM是⼀个树形结构。操作⼀个DOM节点实际上就是这么⼏个操作:
更新:更新该DOM节点的内容,相当于更新了该DOM节点表⽰的HTML的内容;
遍历:遍历该DOM节点下的⼦节点,以便进⾏进⼀步操作;
添加:在该DOM节点下新增⼀个⼦节点,相当于动态增加了⼀个HTML节点;
删除:将该节点从HTML中删除,相当于删掉了该DOM节点的内容以及它包含的所有⼦节点。
在操作⼀个DOM节点前,我们需要通过各种⽅式先拿到这个DOM节点。最常⽤的⽅法是ElementById()和
由于ID在HTML⽂档中是唯⼀的,所以ElementById()可以直接定位唯⼀的⼀个DOM节点。
例如:
nodeselector// 返回ID为'test'的节点:
var test = ElementById('test');
// 先定位ID为'test-table'的节点,再返回其内部所有tr节点:
var trs = ElementById('test-table').getElementsByTagName('tr');
// 先定位ID为'test-div'的节点,再返回其内部所有class包含red的节点:
var reds = ElementById('test-div').getElementsByClassName('red');
// 获取节点test下的所有直属⼦节点:
var cs = test.children;
// 获取节点test下第⼀个、最后⼀个⼦节点:
var first = test.firstElementChild;
var last = test.lastElementChild;
第⼆种⽅法是使⽤querySelector()和querySelectorAll(),需要了解selector语法,然后使⽤条件来获取节点,更加⽅便:
// 通过querySelector获取ID为q1的节点:
var q1 = document.querySelector('#q1');
// 通过querySelectorAll获取q1节点内的符合条件的所有节点:
var ps = q1.querySelectorAll('div.highlighted > p');
注意:低版本的IE<8不⽀持querySelector和querySelectorAll。IE8仅有限⽀持。
严格地讲,我们这⾥的DOM节点是指Element,但是DOM节点实际上是Node,在HTML中,Node包括Element、Comment、
CDATA_SECTION等很多种,以及根节点Document类型,但是,绝⼤多数时候我们只关⼼Element,
也就是实际控制页⾯结构的Node,其他类型的Node忽略即可。根节点Document已经⾃动绑定为全局变量document。
练习
如下的HTML结构:
JavaScript
Java
Python
Ruby
Swift
Scheme
Haskell
JavaScript
Java
Python
Ruby
Swift
Scheme
Haskell
请选择出指定条件的节点:
'use strict';
----
// 选择
JavaScript
:
var js = ;
// 选择
Python
,
Ruby
,
Swift
:
var arr = ;
// 选择
Haskell
:
var haskell = ;
----
// 测试:
if (!js || js.innerText !== 'JavaScript') { alert('选择JavaScript失败!');
} else if (!arr || arr.length !== 3 || !arr[0] || !arr[1] || !arr[2] || arr[0].innerText !== 'Python' || arr[1].innerText !== 'Ruby' || arr[2].innerText !== 'Swift') {
console.log('选择Python,Ruby,Swift失败!');
} else if (!haskell || haskell.innerText !== 'Haskell') {
console.log('选择Haskell失败!');
} else {
console.log('测试通过!');
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论