代码目的是改变<h1>下一个节点的颜色。
由于IE/Fx对nextSibling有不同的判断就必需写function getNextElement 来做判断,随之而来的是一些我搞不明白的问题。
// HTML代码片段
----------------------------------------------------------
<h1> H1 </h1>
<p> PPP </p>
<p> PPP </p>
----------------------------------------------------------
//Javascript代码片段
----------------------------------------------------------
function h1Next() {
if (!document.getElementsByTagName) return false;
var h1s = document.getElementsByTagName("h1");
for (var i=0; i<h1s.length; i++) {
var ppp = getNextElement(h1s[i].nextSibling);
ppp.style.color = "red";
}
}
//书上这样写
function getNextElement(node) {
if (node.nodeType == 1) {
return node;
}
//Q:这个代码我看得有点糊涂。
if (node.nextSibling) {
return getNextElement(node.nextSibling);
}
//Q: 为什么还要返回个null呢?
return null;
}
//我这样写写
function getNextElement(node) {
//如果nodeType是1,就直接返回node(IE),否则继续找下一个节点。(FF)
//Q:我想知道这样写的弊端是什么?
if (node.nodeType == 1) {
return node;
} else {
return node.nextSibling;
}
}
----------------------------------------------------------
以上问题代码出自 《JavaScript DOM 编程艺术》。卡在这里不能理解了。所以求各位指点一下。
由于IE/Fx对nextSibling有不同的判断就必需写function getNextElement 来做判断,随之而来的是一些我搞不明白的问题。
// HTML代码片段
----------------------------------------------------------
<h1> H1 </h1>
<p> PPP </p>
<p> PPP </p>
----------------------------------------------------------
//Javascript代码片段
----------------------------------------------------------
function h1Next() {
if (!document.getElementsByTagName) return false;
var h1s = document.getElementsByTagName("h1");
for (var i=0; i<h1s.length; i++) {
var ppp = getNextElement(h1s[i].nextSibling);
ppp.style.color = "red";
}
}
//书上这样写
function getNextElement(node) {
if (node.nodeType == 1) {
return node;
}
//Q:这个代码我看得有点糊涂。
if (node.nextSibling) {
return getNextElement(node.nextSibling);
}
//Q: 为什么还要返回个null呢?
return null;
}
//我这样写写
function getNextElement(node) {
//如果nodeType是1,就直接返回node(IE),否则继续找下一个节点。(FF)
//Q:我想知道这样写的弊端是什么?
if (node.nodeType == 1) {
return node;
} else {
return node.nextSibling;
}
}
----------------------------------------------------------
以上问题代码出自 《JavaScript DOM 编程艺术》。卡在这里不能理解了。所以求各位指点一下。