javascript重置(base层)(。。。。不完整)
生活随笔
收集整理的這篇文章主要介紹了
javascript重置(base层)(。。。。不完整)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、nextSibling瀏覽器兼容問題
<ul><li id="item1"></li><li id="item2"></li><li id="item3"></li> </ul>
var item1=document.getElementById("item1"); alert(item1.nextSibling.id); alert(item1.nextSibling.nodeType); alert(document.getElementsByTagName("ul")[0].childNodes.length);
ie8,ie7彈出的內容依次是:item2,1,3
firefox,ie9+,chrome彈出的內容依次是:undefined,3,7 原因是:nodeType=3表示是文本節點,而不是1元素節點。firefox瀏覽器將包括空白、換行等文本信息也當做childNodes中的一員,而ie8會忽略它,只將DOM節點當做是childNodes的一員。
解決方案一:縮進HTML(不推薦)
<ul><li id="item1"></li><li id="item2"></li><li id="item3"></li></ul>
解決方案二:
function getNextNode(node) {node = typeof node == "string" ? document.getElementById(node) : node;var nextNode = node.nextSibling;if (!nextNode) return null; // if(!document.all){ //不能區分出ie9,ie10if ($.support.leadingWhitespace) {while (true) {if (nextNode.nodeType == 1) {break;} //如果下一個節點是元素節點則返回else {if (nextNode.nextSibling) { //如果下下個節點存在nextNode = nextNode.nextSibling;} else {break;}}}}return nextNode;}var nextNode = getNextNode("item1");alert(nextNode.id);var nextNode2 = getNextNode("item2");alert(nextNode2.id);
?
轉載于:https://www.cnblogs.com/zhaojieln/p/4332814.html
總結
以上是生活随笔為你收集整理的javascript重置(base层)(。。。。不完整)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个女人的第六感个性签名。
- 下一篇: 为什么我玩英雄啵咕第3关就一直卡回合,好