zoukankan      html  css  js  c++  java
  • JS之document对象(找元素、操作内容、操作属性、操作样式及4道例题)

    document对象

    一、找元素

    1.根据id找

        示例:

    <input id = "a"  type="button" value="找元素" onclick="Show()" />
    function Show()
    {
        alert(document.getElementById("a"));
    }

        输出的结果是[objectHTMLDivElement],意思是找到了HTML里面的div。根据id找到的是唯一一个元素。

    2.根据class找

      示例:

    <div class="aa"></div>
    <div class="aa"></div>
    <span class="aa"></span>
    alert(document.getElementsByClassName("aa"));

        输出的结果是[objectHTMLDivCollection]。Elements后面多了一个s,是个复数形式,表明找到的不是一个元素,而是很多元素,这些元素放在一个数组里面。如果再在后面加上allert(attr[0]);输出的结果就是一个div。根据class找,返回的是一个数组。

    3.根据name找

        表单里面有一个比较特殊的属性name,相当于它的名称。也可以根据name找元素,返回的也是一个数组。

        示例:

    <input type="text" name="cc" />
    alert(document.getElementsByName("cc")[0]);
    //取索引0,找到的结果是<input>标签。

    4.根据标签名找

      示例:

    alert(document.getElementsByTagName("div").length);

      表示根据标签名div找,返回的也是数组。上面代码是输出数组的长度,输出结果是3,表示有3个div。

    二、操作内容

    1.普通元素

      这里的内容指的是元素(标签)里面的内容,开始标签和结束标签之间的内容。

    ①.获取内容文本

     示例:

    <div id="a">hello</div> //普通的div
    var a = document.getElementById("a")//找到id是a里的div
    alert(a.innerText);//获取div里的内容

      如果在hello外面套一个<span>,获取的还是hello,这说明.innerText获取的是能在网页上看到的内容,是文本,而不是网页的代码。

    ②.内容设置(.innerText)

      .innerText除了可以获取内容外,还可以设置内容,例如在上面的代码下面再加上a.innerText = "ok",输出的结果就成为了ok,取代了hello。直接拿来用是取值,让它等于一个值就是赋值。

    ③.获取内容代码

      alert(a.innerHTML);表示获取代码,例如下面代码输出的结果就是<span>hello</span>,获取的是代码。

    <div id="a"><span>hello</span></div> 
    var a = document.getElementById("a")  
    alert(a.innerHTML);  

    ④.内容设置(a.innerHTML)

      在上面代码下面加上a.innerHTML = "<span style='color:red'>ok</span>";输出的结果就是红色的ok,相当于把这行代码替换了原来的代码。

    ⑤.显示出标签

        显示出的标签要用a.innerText来做,例如a.innerText = "<a href='#'>超链接</a>";页面上就会显示"<a href='#'>超链接</a>。

    2.表单元素

        示例:

    <input type="text" id="txt" value="hello" />
    var a = document.getElementById("txt")
    alert(a.value);

        用value获取表单里的内容。上面代码输出结果是hello。如果想要设置内容,可以在上面的代码下面加上a.value = "ok";,输出就过就成了ok。

    三、操作属性

    1.设置属性   

        属性是在标签里面写的,checked表示选中。

        示例:

    <input type="radio" name="sex" id="sex" text="aa" />var a = document.getElementById("sex")
    a.setAttribute("checked","checked")

        上面代码表示原来按钮属性里面“男”没有选中,用a.setAttribute("checked","checked")给按钮添加属性。第一个"checked"是属性名,第二个"checked"是属性值。

    2.移除属性;a.removeAttribute("checked");括号里的就是属性名。

    3.获取属性:alert(a.getAttribute("checked"));如果里面有一个属性,通过属性名来取出里面的值。输出的属性值就是checked。

    四、操作样式

        注意JS中的样式和body中的样式不太一样,中间没有-隔开,而中间有大写的字母。

    1.获取样式

        示例:

    <div id="d" style="200px; height:200px; background-color:#F00"></div>
    var a = document.getElementById("d");
    alert(a.style.backgroundColor);

        上面代码是获取div的背景色。也可以获取宽度、高度。如果把div的样式做成内嵌的,就找不到样式的值了。说明JS里操作样式只能操作内联的,不能操作内嵌的。

    2.设置样式

        示例:如果加上a.style.fontSize = "30px";,上面的div中的字体就会变成30px。

    3.修改样式

        示例:和设置样式格式一样,a.style.backgroundColor = "green";表示背景色换成绿色。修改样式只能一条一条的写。

     

    例子1:单选按钮确定提交是否可用

    <style type="text/css">
    *{ margin:0px auto; padding:0px}
    </style>
    </head>
    <body>
    <div style="500px; height:500px">
      <div style="margin-top:20px">
        <input type="radio" name="sure" id="s1" onclick="KeYong()" />同意
        <input type="radio" name="sure" id="s2" onclick="BuKeYong()" />不同意
      </div>
    <div style="margin-top:30px">
      <input type="submit" value="确定" id="btn" style="100px; height:35px" disabled="disabled" />
    </div>
    </div>
    </body>
    <script type="text/jscript">
      function KeYong()
      {
        var a = document.getElementById("btn");
        a.removeAttribute("disabled");
      }
      function BuKeYong()
      {
        var a = document.getElementById("btn");
        a.setAttribute("disabled","disabled");
      }
    </script>

    例题2:倒计时按钮可用

    <body>
    <div style="500px; height:500px; margin:100px 0px 0px 100px">
      <input id="btn" type="submit" value="确定" style="100px; height:35px" disabled="disabled" />
      <span id="daojishi">10</span>
    </div>
    </body>
    <script type="text/javascript">
    window.setTimeout("YanChi()",1000);
    function YanChi()
    {
      var span = document.getElementById("daojishi")
      /*var n =span.innerText;
      n--;                      //标记的3行等于下面的1行的效果
      span.innerText = n;*/
      span.innerText = span.innerText-1;
      if(span.innerText == 0)
      {
        document.getElementById("btn").removeAttribute("disabled");
        return;
      }
    window.setTimeout("YanChi()",1000);
    }
    </script>

    例题3:在网页上显示和系统时间同步的  时  分   秒

    <body>
    <div style="margin-top:20px; margin-left:30px">
      <span id="h"></span>
      <span id="m"></span>
      <span id="s"></span>
    </div>
    </body>
    <script>
    
    window.setInterval("Bian()",1000);
    function Bian()
    {
      var sj = new Date();
      document.getElementById("h").innerText = sj.getHours();
      document.getElementById("m").innerText = sj.getMinutes();
      document.getElementById("s").innerText = sj.getSeconds();
    }
    </script>

     例题四:往一个列表里面添加数据

    <body>
    <select id="sel" style="200px;" size="10">
    <option>11</option>
    <option>22</option>
    <option>33</option>
    </select>
    <input type="text" id="nr" />
    <input type="button" value="添加" id="btn1" onclick="Add()" />
    </body>
    <script type="text/javascript">
    function Add()
    {
      var v = document.getElementById("nr").value;     取出用户输入的值
      var list = document.getElementById("sel");        向列表里添加
      list.innerHTML = list.innerHTML+"<option>"+v+"</option>";
    }
    </script>
  • 相关阅读:
    NOIP2011 D1T1 铺地毯
    NOIP2013 D1T3 货车运输 倍增LCA OR 并查集按秩合并
    POJ 2513 trie树+并查集判断无向图的欧拉路
    599. Minimum Index Sum of Two Lists
    594. Longest Harmonious Subsequence
    575. Distribute Candies
    554. Brick Wall
    535. Encode and Decode TinyURL(rand and srand)
    525. Contiguous Array
    500. Keyboard Row
  • 原文地址:https://www.cnblogs.com/Strive-count/p/5898003.html
Copyright © 2011-2022 走看看