前陣子, 遇到一個奇怪的情況,
同一行指令, 在 IE 與非IE 執行的結果不同,
與大家一起分享...
■■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 先來看看用 ie 看 xml 的資料如下:
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 用 chrome 看 xml 的資料如下:
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
說明: span 裡, 放一個 span, span 的下一層, 再放一個 span, 3層式的 span.
■■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 有問題的程式碼, 只有下面這一行, 猜猜看 alert 出來的數字應該是多少?
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ ie 的答案是: 1
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ google chrome 的答案是: 3
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 解決辦法: 使用 getRealChild function 即可取得"一致" 的length
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
var myRealChilds = getRealChild(myNodeObj);
//alert(myRealChilds.length);
function getRealChild(elem){
var realChild = [];
for(var i = 0;i < elem.childNodes.length; i++){
if(elem.childNodes[i].nodeType == 1){
realChild.push(elem.childNodes[i]);
}
}
return realChild;
}
沒有留言:
張貼留言