1,childNodes
属性,标准的,它返回指定元素的子元素集合,包括html节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。
有些人错误的使用()去取该集合元素,下表列出各浏览器对childNodes(i)的支持情况:
|
IE6/7/8 |
Firefox3.5 |
Safari4 |
Chrome4 |
Opera10 |
childNodes(i) |
支持 |
不支持
|
支持 |
支持 |
支持 |
2,有时候需要获取指定元素的第一个html子节点(非属性/文本节点),最容易想到的就是firstChild
属性。代码中第一个html节点前如果有换行,空格,那么firstChild返回的就不是你想要的了。可以使用nodeType来判断下。
function getFirst(elem){
for(var i=0,e;e=elem.childNodes[i++];){
if(e.nodeType==1)
return e;
}
}
3,children
属性,非标准的,它返回指定元素的子元素集合。经测试,它只返回html节点,甚至不返回文本节点。且在所有浏览器下表现惊人的一致。和childNodes
一样,在firefox下不支持()取集合元素。因此如果想获取指定元素的第一个html节点,可以使用children[0]来替代上面的getFirst函数。需注意children在IE中包含注释节点。
相关资源:
分享到:
相关推荐
通过实际测试document、head、body等HTML元素,我们可以发现,针对这些元素使用children和childNodes获取的结果也基本没有差异。这可能是因为在标准的HTML结构中,这些元素周围通常不会存在多余的空白字符。 总结来...
本文将详细解析`parentNode`、`parentElement`、`childNodes`和`children`之间的区别。 首先,`parentNode`和`parentElement`都是用于获取一个元素的父级节点。它们的主要区别在于兼容性。`parentNode`是W3C标准的...
IE和Firefox在处理`parentElement`和`parent.children`上存在差异。IE支持`parentElement`属性直接获取父元素,而Firefox则需使用`parentNode`。同样,`parent.children`在IE中有效,但Firefox中应使用`parent....
10. **parentElement与parentNode,children与childNodes**: - FF不支持`parentElement`,应使用`parentNode`。 - `parentNode.childNodes`在FF和IE中的解释不同,FF的`childNodes`可能包含空白文本节点。可以...
Firefox则使用`parentNode`、`parentNode.childNodes`和`node.parentNode.removeChild(node)`。 至于鼠标坐标的特有方法,`screenX`是IE和Firefox都支持的,指的是鼠标在显示屏幕上的坐标。`clientX`是鼠标在页面...
在网页开发中,JavaScript(简称...jQuery的方法不仅简化了代码,还提高了性能,因为它内部处理了浏览器差异,开发者无需关心兼容性问题。通过熟悉并熟练运用这些方法,可以更高效地操纵DOM,实现丰富的网页交互效果。
10. `parentElement`和`children`问题:FF使用`parentNode`和`childNodes`,而IE中可能有`parentElement`和`children`。`childNodes`在不同浏览器中的处理方式不同,可能包含空白文本节点。建议使用`...
10. **`parentElement`和`children`问题**:Firefox使用`parentNode`和`childNodes`,而IE中可能使用`parentElement`和`children`。`childNodes`在Firefox中包含空白文本节点,可以通过`getElementsByTagName()`规避...
5. **选择和遍历**:DOM提供了一系列方法来查找和遍历文档结构,如`querySelector`和`querySelectorAll`用于选取符合CSS选择器的元素,`childNodes`和`children`属性用于访问元素的子节点。 6. **事件(Event)**:...
10. **FF中没有parentElement和parent.children**:Firefox不支持`parentElement`和`parent.children`,可以使用`parentNode`和`childNodes`代替。 11. **const问题**:IE8及更早版本不支持`const`关键字,如果要...
10. FF中没有`parentElement`和`parement.children`:Firefox使用`parentNode`和`childNodes`,而非IE的`parentElement`和`children`。在跨浏览器代码中,使用`parentNode`和`childNodes`更安全。 11. `const`问题...
HTMLCollection是由一些获取DOM元素的API返回的,如`document.getElementsByTagName()`或者`elem.children`。这些方法返回的集合是实时更新的,也就是说,如果DOM结构发生变化,HTMLCollection中的元素也会相应地...
在使用childNodes属性获取子节点时,不同浏览器的实现存在差异。IE6-8获取的只是元素节点,而高版本浏览器如Chrome和Firefox会同时获取元素节点和文本节点。为了兼容,我们可以使用nodeType属性进行判断。例如,...
在不同的浏览器环境中,需要注意兼容性问题,因为不同的浏览器可能对某些属性和方法的支持存在差异。在开发过程中,可以借助像jQuery这样的库来简化跨浏览器的DOM操作,提高代码的可读性和维护性。
- **IE** 中使用 `node.parentNode.removeChild(node)` 移除节点时,需要注意 FF 中的 `children` 和 `childNodes` 的区别。 8. **常量声明** - **IE**: 不支持 `const` 关键字,需要使用 `var`。 9. **body ...
IE浏览器在解析DOM节点时,其`children`和`childNodes`属性不会把文本节点(例如换行和空白字符)计入子节点。然而,在Firefox浏览器中,`childNodes`会包括文本节点作为子节点。例如,考虑以下HTML代码片段: ```...
10. **FF中的parentElement和parent.children**:FF使用`element.parentNode`和`element.childNodes`,而IE有`element.parentElement`和`element.children`。 11. **const问题**:在旧版本的IE中不支持`const`...
- **IE**:使用`parentElement`和`children`。 - **Firefox**:使用`parentNode`和`childNodes`。 - **统一解决方案**:可以使用`parentNode`和`childNodes`,或考虑使用`querySelectorAll`等更现代的方法。 4. ...