zoukankan      html  css  js  c++  java
  • dom基础

    1.获取某个dom里面的内容

    function getContent (strSelector) {
            var text = document.querySelector(strSelector).innerHTML;
            console.log('1.' + strSelector + '里面的内容是:' + text);
        }
        getContent('h1');

    2.获取某个dom的某个属性的属性值:

        function getAttr(strSelector, strAttr) {
            var dom = document.querySelector(strSelector);
            var value = dom && dom.getAttribute(strAttr);
            if (value) {
                console.log('2.类名为' + strSelector + '元素的accesskey属性值为:' + value);
            }
        }
        getAttr('.active', 'accesskey');

    3.获取某个dom的高度

        function getHeight(strSelector) {
            var height = document.querySelector(strSelector).offsetHeight;
            console.log('3.' + strSelector + '元素的高度为:' + height);
        }
        getHeight('header');

    4.获取css background里面的图片链接地址

         function getBack(strSelector) {
             var domElement = document.querySelector(strSelector);
             var strUrlBackImg = window.getComputedStyle(domElement).backgroundImage;
             // currentStyle
             if (/url/.test(strUrlBackImg)) {
    
                 strUrlBackImg = strUrlBackImg.split("url")[1].replace(/"/g,'').replace(/(/g,'').replace(/)/g,'');
                 console.log(strUrlBackImg);
                 console.log('4.' + strSelector + '背景图片的地址是:' + strUrlBackImg);
             }
         }
         getBack('h1');

    5.在某个标签后插入某个dom

        function insertHtml(strSelector) {
            var navList = document.querySelector(strSelector);
            if (navList) {
                navList.insertAdjacentHTML('beforeEnd', '<a href accesskey="4">导航4</a>');
            }
            console.log('6.在' + strSelector + '标签后插入<a href accesskey="4">导航4</a>之后为:');
            console.log(navList);
        }
        insertHtml('nav');

    6.删除有某个类名的dom

        function delDom(strSelector) {
            var dom = document.querySelectorAll(strSelector);
            for (var i=0; i<dom.length; i++) {
                dom[i].parentNode.removeChild(dom[i]);
                console.log('7.有' + strSelector + '类名的' + '这个dom被删除了');
            }
        }
        delDom('.logo');

    7.禁止页面上所有的a标签跳转

        function preventLink() {
            document.body.addEventListener('click', function (event) {
                var elTarget = event.target;
                if (/^a$/i.test(elTarget.tagName)) {
                    event.preventDefault();
                }
            });
        }    
        preventLink();

    8.dom获取图片宽高,禁用菜单,插入元素

    <!doctype html>
    <html>
    <head>
    <style type="text/css">
        * {
          margin: 0;
          padding: 0; 
        }
        img {
            border: 0;
            display: block;
            background-color: red;
            position: relative;
        }
    /*    .word {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%,-50%);
            -webkit-transform: translate(-50%,-50%);
        }*/
        .word {
            width: 100px;
            height: 100px;
            position: relative;
            margin-top: -100px;
            line-height: 100px;
            text-align: center;
        }
    </style>
    <body>
    
    <script type="text/javascript">
    (function () {
        "use strict";
        var console = window.console;
    
        var img = new Image();
        var bodyElement = document.querySelector('body');
    
        img.setAttribute('width', 100);
        img.setAttribute('height', 100);
        img.onload = function() {
            console.log('1.图片的宽为:' + img.width + '图片的高为:' + img.height);
        };
        img.src = 'http://qidian.qpic.cn/qidian_common/349573/4ff3d03bc13bb37b2da095acc4164483/0';
    
        bodyElement.insertBefore(img,bodyElement.firstElementChild);
    
        img.setAttribute('alt', '3.阅文集团');
    
        img.addEventListener('click',function() {
            img.style.backgroundColor = "green";
            img.style.borderRadius = "50%";
        });
    
        img.oncontextmenu = function(){ 
            console.log('5.我的右键菜单被禁用了');
            return false;
        };
    
        var imgList = document.querySelector('img > img');
        var imgList2 = document.querySelector('img ~ img');
        if(imgList || imgList2) {
            console.log('6.有其他图片和插入的这个元素是兄弟关系');
        } else {
            console.log('6.没有其他图片和插入的这个元素是兄弟关系');
        }
    
        var text = document.createElement('span');
        text.innerHTML = '图片';
        text.style.position = 'absolute';
        var dom = document.createElement('div');
        dom.appendChild(text);
        img.after(dom);
    
    
        text.style.marginTop = -1 * (img.offsetHeight / 2) - text.offsetHeight / 2 + 'px';
        text.style.marginLeft = 1 * (img.offsetWidth / 2) - text.offsetWidth / 2 + 'px';
    
    
    })();
    </script>
    </body>
    </html>

    9.dom获取属性,禁用按钮,插入元素

    <!doctype html>
    <html>
    <head>
    <body>
    <p><button id="btn">按钮</button></p>
    <script type="text/javascript">
    (function () {
        "use strict";
        var console = window.console;
    
        var btn = document.getElementById('btn');
        console.log('1.获取的dom对象为' + btn);
    
        var type = btn.type;
        console.log('2.btn的type类型为' + type);
    
        btn.addEventListener('click', function(){
            // btn.setAttribute('disabled', 'disabled'); 或者
            btn.setAttribute('disabled', true);
            console.log('3.按钮被禁用了');
        });
    
        var AttrValue = window.getComputedStyle(btn).whiteSpace;
        console.log('4.按钮的white-space属性值为' + AttrValue);
    
        var dom = document.createElement('input');
        dom.setAttribute('type', 'button');
        var btn2 = btn.parentNode;
        btn2.insertBefore(dom, btn.nextSibling);
    
         console.log('7.新按钮的white-space的属性值为' + window.getComputedStyle(dom).whiteSpace);
    
    
         // onclick和addEventListener的区别
         /*
            onclick方法IE8以下用,IE9以上用onclick和addEventListener
            但是jq已经封装好了兼容所有浏览器的方法:dom.on('click',function(){});
            
            demo:
            btn.onclick = function () { alert('1'); };
            btn.onclick = function () { alert('2'); };
            //output: alert('2');
    
            btn.addEventListener('click', function(){
                 alert('1');
            });
            btn.addEventListener('click', function(){
                alert('2');
            });
            //output: alert('1'); alert('2');
    
         */
    
    })();
    </script>
    </body>
    </html>

    10.dom判断两个元素是否重叠

    <!doctype html>
    <html>
    <head>
    <style type="text/css">
        .test-box {
            width: 100px;
            height: 100px;
            border: 20px solid pink ;
            background: yellow;
        }
        body {
            position: relative;
        }
    </style>
    </head>
    <body>
    刷新看看效果
    <div id="box" class="test-box"></div>
    </body>
    <script type="text/javascript">
    (function () {
        "use strict";
        var console = window.console;
    
        var box = document.getElementById('box');
        var boxHeight = box.offsetHeight,
            boxWidth = box.offsetWidth;
        console.log('1.#box的宽(包括border)为:' + boxWidth + ',我的高为:' + boxHeight);
    
    
        var position = box.getBoundingClientRect();
        var top = position.top,
            left = position.left;
        console.log('2.#box距离浏览器窗口左上角的水平距离为:' + left + '垂直距离为:' + top);
    
        var boxClone = box.cloneNode(true);
        boxClone.removeAttribute('id');
        document.body.appendChild(boxClone);
    
        box.style.boxSizing = 'border-box';
        boxHeight = box.offsetHeight;
        boxWidth = box.offsetWidth;
        console.log('1.#box的宽(包括border)为:' + boxWidth + ',我的高为:' + boxHeight);
    
    
    
        var cloneWidth = Math.random()*(200 - 100) + 100;
        var cloneHeight = Math.random()*(120 - 60) + 60;
    
        boxClone.style.width = cloneWidth + 'px';
        boxClone.style.height = cloneHeight + 'px';
        console.log('3.克隆div的宽带为:' + cloneWidth);
        console.log('3.克隆div的高度为:' + cloneHeight);
    
        var boxCloneWidth = boxClone.offsetWidth,
            boxCloneHeight = boxClone.offsetHeight;
    
        boxClone.style.position = 'absolute';
        boxClone.style.marginTop = cloneWidth + 'px';
        boxClone.style.marginLeft = cloneHeight + 'px';
    
    
        var positionClone = boxClone.getBoundingClientRect();
        var topClone = positionClone.top,
            leftClone = positionClone.left;
        var boxCloneWidth = boxClone.offsetWidth,
            boxCloneHeight = boxClone.offsetHeight;
    
    
        if (leftClone - left > boxWidth || left - leftClone > boxCloneWidth || top - topClone > boxCloneHeight || topClone - top > boxHeight) {
            boxClone.innerHTML = '没重叠';
            console.log('没重叠');
        } else {
            boxClone.innerHTML = '重叠';
            console.log('重叠');
        }
    })();
    </script>
    </html>

     11. 去掉页面的注释代码

    <body>
    <!--这家公司没有年终奖,不要来-->
    <!---->
    <!-- -->
    呵呵呵呵呵
    </body>
    <script type="text/javascript">
        "use strict";
        var console = window.console; 
    
        var node = document.body.childNodes;
        for (var i=0; i<node.length; i++) {
            if (node[i].nodeName == '#comment') {
                node[i].parentNode.removeChild(node[i]);
            }
        }
    
        document.body.insertAdjacentHTML('afterbegin','<!--这家公司没有年终奖,不要来-->');
    
        document.body.appendChild(document.createComment('这家公司没有年终奖,不要来2'));
    
    </script>
    </body>

    12. 判断浏览器是否支持webp格式

    function checkWebp() {
        // 若浏览器支持则能返回类型参数的dataurl:data:image/webp,若浏览器不支持,默认返回的是data:image/png
        return (document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/png') == 0);
        }
  • 相关阅读:
    关于guava实现线程池
    结构化方法与面向对象方法的比较
    敏捷开发与传统开发方式的比较
    C# 事件的使用方法
    C# 泛型反射的调用
    RPC 知识科普一下
    C#枚举(Enum)小结
    C#图片添加文字水印
    C#索引器
    C#隐式转换与显示转换
  • 原文地址:https://www.cnblogs.com/popeyesailorman/p/7381704.html
Copyright © 2011-2022 走看看