美文网首页
属性操作

属性操作

作者: 大庆无疆 | 来源:发表于2019-02-18 16:30 被阅读0次

    非表单元素的属性

    1、利用DOM中的元素访问属性,一般DOM对象属性的名称和html中的属性名称相同,但是有些个别的不一样,比如class属性
    DOM对象的对应的标签的class属性的名字叫做className ,因为class 在js中是关键字。

    2、取消a标签的默认行为
    return false; //在事件函数中增加这行代码,可以取消a的默认行为

    3、innerHTML和innerText属性获取标签内的内容

    <body>
        <div id="box">
            <span>我是span</span>
            <a href="http://www.baidu.com" target="_blank">百度一下</a>
            <img src="../images/animal2.png">
        </div>
    
    
        <script type="text/javascript">
            1、我们有时会有个需求,就是获取标签内的内容,这里我们获取div标签的内容
    
            //获取元素
            var box = document.getElementById('box');
    
            使用innerHTML属性来获取
            var content = box.innerHTML;
            console.log(content);//他会把div里面的内容原封不动的打印出来,包括标签,空格和换行,如下
            /*
            <span>我是span</span>
            <a href="http://www.baidu.com" target="_blank">百度一下</a>
            <img src="../images/animal2.png">
        */
    
            使用innerText属性来获取
            content = box.innerText;
            console.log(content);//这个只会获取文本内容,会把标签过滤掉,并且换行和空格都会去掉,如下
            /*我是span 百度一下*/
    
    //------------------------------------------------------------------------------------------------
    
            2、有时我们需要清空div标签内的内容,再重新设置
            (1)清空内容
            box.innerHTML = '';
            // box.innerText = '';//这两个方式都可以
            console.log(box.innerText);
    
            (2)设置内容,通过innerText和innerHTML设置有不同的结果
            //通过innerHTML设置,如果有标签他以html的方式解析标签
            box.innerHTML = '<a href="http://www.baidu.com" target="_blank" title="点击我跳转">百度一下</a>';
            // 页面上显示的结果为:百度一下。
    
            //通过innerText设置,不会解析标签,将设置的内容原封不动的设置进去
            box.innerText = '<a href="http://www.baidu.com" target="_blank" title="点击我跳转">百度一下</a>'
            //页面上显示的结果为:<a href="http://www.baidu.com" target="_blank" title="点击我跳转">百度一下</a>
    
    //-------------------------------------------------------------------------
    还有一个 textContent属性,和innerText属性相类似
     他们的区别在哪里呢?浏览器兼容问题,有的支持textContent,有的支持innerText,有的两个都支持
    所以这里我们处理他们的兼容问题,不过以后一般不需要处理,因为别人已经帮我们处理好了
    我们怎么知道浏览器支不支持哪个属性呢?
    我们可以使用typeof来查看返回的类型,当属性不存在时,返回的类型是undefined,存在的话会返回string(是字符串形式哦).
    
            //现在我们写一个函数,可以接受一个元素,然后获取元素的内容文本并输出
            function getContent(element) {
                if((typeof element.innerText) === 'string') {   //判断传入的元素是否支持innerText属性
                    console.log(element.innerText);     //支持的话打印内容
                }else { //不支持的话就使用element.textContent
                    console.log(element.textContent);
                }
            }
        </script>
    </body>
    

    表单元素的属性

    注意点:下面这三个属性有一个共同点,就是他们只有一个属性值
    disabled
    checked
    selected
    当html的标签的属性只有一个值的时候,DOM对应的元素属性值是一个布尔类型。

    <form action="http://www.baidu.com" method="post">
        <input type="text" name="" placeholder="我是文本框的提示" id="textbox">
    </form>
    
    <script type="text/javascript">
        // 获取文本框元素
        var textbox = document.getElementById('textbox');
        console.log(textbox.disabled);  //打印false,表示还没有设置该属性
    </script>
    

    自定义属性的操作

    访问:元素.getAttribute(属性名);
    设置属性:元素.setAttribute(属性名, 属性值);
    移除属性:元素.removeAttribute(属性名);
    判断是否含有某属性:元素.hasAttribute(属性名);

    <body>
        我们可以个标签添加自定义属性 
        <div id="box" class="d" age="23" ></div>
    
        <script type="text/javascript">
            //获取元素
            var box = document.getElementById('box');
    
            1、访问自定义属性,不能使用console.log(box.age);//输出undefined,访问自定义属性有其他的方式
            console.log(box.getAttribute('age'));//输出23,正常访问
    
            2、设置自定义属性,通过setAttribute(属性名, 属性值);
            //如果该属性没有存在,则会添加属性
            box.setAttribute('age', '92');  //更改了age属性的值
            box.setAttribute('personId', '1');  //增加了personId属性
    
            3、移除元素
            box.removeAttribute('age');
            console.log(box);   //输出:<div id="box" class="d" personid="1"></div>
    
        </script>
    </body>
    

    相关文章

      网友评论

          本文标题:属性操作

          本文链接:https://www.haomeiwen.com/subject/faoaeqtx.html