javascript中兄弟元素兼容封装

<script>
    //获取下一个兄弟元素
    function getNextElement(element) {
        if (element.nextElementSibling) {
            return element.nextElementSibling;
        } else {
            var next = element.nextSibling;//下一个兄弟节点
            while (next && next.nodeType !== 1) {//有 而且不是我们要的元素
                next = next.nextSibling;
            }
            return next;
        }
    }

    //获取上一个兄弟元素
    function getPreviousElement(element) {
        if (element.previousElementSibling) {
            return element.previousElementSibling;
        } else {
            var prev = element.previousSibling;//上一个兄弟节点
            //while (prev && prev.nodeType !== 1) {
            while (prev && 1 !== prev.nodeType) {//=== == = 把数字写前面 以免造成其他影响
                prev = prev.previousSibling;
            }
            return prev;
        }
    }
</script>
时间: 2024-08-08 05:25:30

javascript中兄弟元素兼容封装的相关文章

javascript中Ajax请求的封装代码

/****************************ajax请求 start**************************************/ function ajaxClass(_url, _successCallback, _failureCallback, _urlParameters, _callbackParams, _async, _charset, _timeout, _frequency, _requestTimes, _frame) { /** * AJAX

jQuery中兄弟元素、子元素和父元素的获取

我们这里主要总结jQuery中对某元素的兄弟元素.子元素和父元素的获取,原声的Javascript代码对这些元素的获取比较麻烦一些,而jQuery正好对这些方法进行封装,让我们更加方便的对这些元素进行获取和操作. jQuery提供的方法 上来就把jQuery提供的方法摆在这里是不是有点不好呀,不过,我们从jQuery的方法名称上就能知道这些方法是干嘛的了. parent(selector) 查找父元素,可传入selector进行过滤(下同) parents(selector) 查找所有的祖先节点

javascript中查看元素事件函数的一些技巧

在分析一些网页的时候,经常会发现点击某个按钮会触发某个动作,当页面比较复杂,包含的js文件又多,这时候要找到这段触发函数的代码写在哪里就比较困难.比如,在某个html页面中,发现如下一个按钮,点击后会使得页面元素有变化.但是并未看到onclick事件,那说明该事件可能是通过javascript中的addEventListener方法绑定的(IE不支持该方法,使用的是attachEvent,不理解为微软何非要和W3C标准对着干).例如下面的代码: <input type="button&qu

javascript中document.getElementsByClassName兼容性封装方法一

var getElmsByClsName = function(className, results) { results = results || []; // 判断浏览器是否支持 getElementsByClassName if(document.getElementsByClassName) { // 浏览器支持这个方法 results.push.apply( results, document.getElementsByClassName(className) ); } else {

JavaScript中数组元素的线性搜索

线性搜索:将给定的数组元素一个接一个的与我们需要查找的元素进行比较. 示例:1.该示例通过prompt()函数实现用于输入需要查找的元素. 2.给定一组数组元素 3.将查询结果通过set_innerHTML()函数输出到指定页面标签内. (注:set_innerHTML()函数弥补JavaScript的innerHTML属性,JavaScript的innerHTML属性不能进行网页交互时输出.即网页交互时使用innerHTML属性JavaScript程序无响应.) <!doctype html>

javascript中提高代码的封装性

我出的面试题中,有一条是问如何避免页面引用JS,出现函数.变量重复.冲突的. 从大的方面讲,应该引入javascript的模块化开发,符合AMD规范之类: 从小的方面说,大概就是限定变量和函数的作用域了,这也涉及到一点大家如雷贯耳的闭包概念. 众所周知,javascript没有类,只有函数.其实它的函数也跟类差不多了,函数里面可以定义函数.而对于.net来说,直到近期出现的C#7,才支持这一点. 所以,我们可以将函数和变量,都定义在一个函数里面,这样即与外部隔绝矣: <html> <he

关于JavaScript中省略元素对数组长度的影响

在学习<JavaScript权威指南>第六版的第7.1节中通过数组直接量创建数组时,我们可以不给数组的某个元素赋值,它就会使undefined.虽然是undefined,但我们调用数组对象的length属性时undefined也会导致length加1.有如下所示的四种情况: 1 var undef0 = [,,]; 2 var undef1 = [1,,]; 3 var undef2 = [,1,]; 4 var undef3 = [,,1]; 5 6 console.log(undef0.l

javascript中的元素包含判断

在实际开发中,很多时候需要知道某个节点是不是另一个节点的后代.很多浏览器提供了contains方法,如: console.log(document.documentElement.contains(document.body));//输入ture DOM3提供的compareDocumentPosition方法也可以判断元素位置关系,结果如下: 1 无关 2 居前 4 居后 8 包含 16 被包含 因此跨浏览器的contains写法如下: function contains(refNode,ot

javascript中数组元素删除方法splice,用在for循环中巨坑

一.demo splice: 该方法会改变自动原始数组长度 实例: var array = ["aa","dd","cc","aa"]; //方法2:删除数组元素 array.splice(1,1); //输出结果:["aa","cc","aa"] getArray(array); 输出:aa cc aa 数组长度自动减一 二.实际业务场景中 在for循环中使y用 t