zoukankan      html  css  js  c++  java
  • 原生JS给元素添加class属性

    原生JS给元素添加class属性

    一、总结

    一句话总结:

    直接操作className属性,具体操作有 = 或者 +=
    document.getElementsByTagName('body')[0].className = 'snow-container'; //设置为新的
    document.getElementsByTagName('body')[0].className += 'snow-container'; //在原来的后面加这个
    document.getElementsByTagName('body')[0].classList.add("snow-container"); //与第一个等价

    1、JS放在body与head中的不同?

    解析的时间不同,放在head里面先被解析,这样body还没有解析,所以$(#btn)会返回空值。

    如果把javascript放在head里的话,则先被解析,但这时候body还没有解析,所以$(#btn)会返回空值。如果把javascript放在head里的话,一般都会绑定一个监听,当全部的html文档解析完之后,再执行代码:
    $(document).ready(function(){
    //这里放入执行代码
    })

    二、原生JS给元素添加class属性

    转自或参考:原生JS给元素添加class属性
    https://www.cnblogs.com/qlqwjy/p/7283628.html

     有下面这三种简单语句。

        document.getElementsByTagName('body')[0].className = 'snow-container'; //设置为新的
            document.getElementsByTagName('body')[0].className += 'snow-container'; //在原来的后面加这个
            document.getElementsByTagName('body')[0].classList.add("snow-container"); //与第一个等价

    测试一:

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                .snow-container {
                    background-color: red;
                }
            </style>
            <script type="text/javascript">
                window.onload = function() {
                    document.getElementsByTagName('body')[0].className = 'snow-container'; //设置为新的
                    document.getElementsByTagName('body')[0].className += 'snow-container'; //在原来的后面加这个
                    document.getElementsByTagName('body')[0].classList.add("snow-container"); //与第一个等价
                }
            </script>
        </head>
    
        <body class="test">
    
        </body>
    
    </html>

    测试二:

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                .snow-container {
                    background-color: red;
                }
            </style>
            
        </head>
    
        <body class="test">
    
        </body>
        <script type="text/javascript">
            document.getElementsByTagName('body')[0].className = 'snow-container'; //设置为新的
            document.getElementsByTagName('body')[0].className += 'snow-container'; //在原来的后面加这个
            document.getElementsByTagName('body')[0].classList.add("snow-container"); //与第一个等价
        </script>
    
    </html>

     

    小结:JS放在body与head中的不同

    放在body和head其实差不多的,只不过是文档解析的时间不同。浏览器解析html是从上到下的。
    如果把javascript放在head里的话,则先被解析,但这时候body还没有解析,所以$(#btn)会返回空值。如果把javascript放在head里的话,一般都会绑定一个监听,当全部的html文档解析完之后,再执行代码:

    $(document).ready(function(){
    //这里放入执行代码
    })
    一般情况下最好是单独把javascript放在js文件里,通过head里的<script src="file.js"></script>链接起来,css则是通过<link>。这样做的目的是为了让内容-样式-逻辑分离,以便以后能够更好地维护。

     
  • 相关阅读:
    codeforces 363B
    hdu 1075 字典树
    D
    C A Simple Job
    Washing Plates 贪心
    HDU 4143 A Simple Problem 分解因式
    ACdream 1236 Burning Bridges 割边 + 去重边
    E. Beautiful Subarrays 字典树
    反素数 -- 数学
    Codeforces Beta Round #79 (Div. 1 Only) B. Buses 树状数组
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12059634.html
Copyright © 2011-2022 走看看