zoukankan      html  css  js  c++  java
  • DOM进阶之HTMl属性操作(对象属性)

    1.HTML属性操作,指的是使用JavaScript来操作一个元素的HTML属性。像下面例子中有一个input元素,指的就是操作它的id,type,value等,其他元素也类似。
    <input id="btn" type="button" value="提交"/>
    在JavaScript中,有两种操作HTML元素属性的方式,一种是”对象属性“,另外一种是使用”对象方法“。
    涉及两种操作,
        获取HTML属性值
        设置HTML属性值
        
      1.1获取HTML属性值
            获取HTML元素的属性值一般是通过属性名,来找到该属性对应的值。
            语法:
            obj.attr
            说明:
            obj是元素名,一个DOM对象。所谓的DOM对象,指的是getElementById(),getElementsByTagName()等方法获取到的元素节点。
            attr是属性名,对于一个对象来说,是通过"."运算符来获取它的属性值

    ```
    <!DOCTYPE >
    
    <html>
    
          <head>
    
                <title ></title>
    
                <meta charset="utf-8" />
    
                <script>
    
                      window.οnlοad=function()
    
                      {
    
                            var oBtn=document.getElementById("btn");
    
                            oBtn.οnclick=function()
    
                            {
    
                                  alert(oBtn.id);
    
                            };
    
                      }
    
                </script>
    
          </head>
    
          <body>
    
          
    
          <input id="btn" class="myBtn" type="button" value="获取" />
    
          </body>
    
          
    
    </html>
    
    
    ```

    分析:
        想要获得某个属性的值,首先需要使用getElementById()等方法找到这个元素节点,然后才可以获取到该属性的值。
        oBtn.id=表示获取按钮的id属性值。同样的,想要获取type属性值可以写成oBtn.type,以此类推。但是如果想获取一个元素的class,写成"oBtn.class”是错误的,应该写成"oBtn.className()"
        使用obj.attr这种方式,不仅可以用来获取静态HTML元素的属性值,还可以用来获取动态创建的DOM元素中的属性值。
        
        举例:获取单选框的值
        

    ``
    <!DOCTYPE >
    
    <html>
    
          <head>
    
                <title ></title>
    
                <meta charset="utf-8" />
    
                <script>
    
                      window.οnlοad=function()
    
                      {
    
                            var oBtn=document.getElementById("btn");
    
                            var oFruit=document.getElementsByName("fruit");
    
                            
    
                            oBtn.οnclick=function()
    
                            {
    
                                  //使用for循环遍历所有的单选框
    
                                  for(var i=0;i<oFruit.length;i++)
    
                                  {
    
                                        //判断当前遍历的单选框是否选中(也就是checked是否为true)
    
                                        if(oFruit[i].checked)
    
                                        {
    
                                              alert(oFruit[i].value);
    
                                        }
    
                                  }
    
                            };
    
                      }
    
                </script>
    
          </head>
    
          <body>
    
                <div>
    
                      <label><input type="radio" name="fruit" value="苹果" 
    checked/>苹果</label>
    
                      <label><input type="radio" name="fruit" value="香蕉" 
    checked/>香蕉</label>
    
                      <label><input type="radio" name="fruit" value="西瓜" 
    checked/>西瓜</label>
    
                      
    
                </div>
    
                <input id="btn" type="button" value="获取" />
    
          </body>
    
          
    
    </html>
    
    
    ```

    分析:
            document.getElemensByName("fruit")表示获取所有name属性值为fruit的表单元素。getElementsByName()只限于表单元素,他获取的也是一个元素集合,也就是类数组。
            
            
            举例:获取下拉列表的值

    ``
    <!DOCTYPE >
    
    <html>
    
          <head>
    
                <title ></title>
    
                <meta charset="utf-8" />
    
                <script>
    
                      window.οnlοad=function()
    
                      {
    
                            var oBtn=document.getElementById("btn");
    
                            var oSelect=document.getElementById("select");
    
                            
    
                            oBtn.οnclick=function()
    
                            {
    
                                  alert(oSelect.value);
    
                            };
    
                      }
    
                </script>
    
          </head>
    
          <body>
    
                <select id="select">
    
                      <option value="北京">北京</option>
    
                      <option value="上海">上海</option>
    
                      <option value="广州">广州</option>
    
                      <option value="深圳">深圳</option>
    
                      <option value="杭州">杭州</option>
    
                      <option value="合肥">合肥</option>
    
                </select>
    
                <input id="btn" type="button" value="获取" />
    
          </body>
    
          
    
    </html>
    
    
    ```

    分析:
            当用户选中哪一个option时,该option的value值就会自动变成当前的select元素的value值。其中value时传给后台处理的,而标签中的文本是给用户看的。这两个值大多时候是一个样的。

     2.设置HTML属性值
       设置HTML元素的属性值,同样也是通过属性名来设置的,非常简单。
       语法:
       obj.attr="值"
       说明:
       obj是元素名,他一个DOM对象,attr是属性名
       举例:

    ```
    <!DOCTYPE >
    
    <html>
    
          <head>
    
                <title ></title>
    
                <meta charset="utf-8" />
    
                <script>
    
                      window.onload=function()
    
                      {
    
                            var oBtn=document.getElementById("btn");
    
                            
    
                            oBtn.onclick=function()
    
                            {
    
                                  oBtn.value="button";
    
                            };
    
                      }
    
                </script>
    
          </head>
    
          <body>
    
                
    
                <input id="btn" type="button" value="修改" />
    
          </body>
    
          
    
    </html>
    
    
    ```

      分析:
    在前面章节创建元素时,也是使用obj.attr的方式来为元素设置属性的。当然对于动态DOM来说,我们不仅可以使用obj.attr,也可以使用下一节介绍的setAttribute()方法来实现

    ```
    <!DOCTYPE >
    
    <html>
    
          <head>
    
                <title ></title>
    
                <meta charset="utf-8" />
    
                <script>
    
                      window.οnlοad=function()
    
                      {
    
                            var oBtn=document.getElementById("btn");
    
                            var oPic=document.getElementById("pic");
    
                            var flag=true;
    
                            
    
                            
    
                            oBtn.οnclick=function()
    
                            {
    
                                  if(flag)
    
                                  {
    
                                        oPic.src="images1.png";
    
                                        flag=false;
    
                                  }
    
                                  else{
    
                                        oPic.src="images.png";
    
                                        flag=true;
    
                                  }
    
                            };
    
                      }
    
                </script>
    
          </head>
    
          <body>
    
                
    
                <input id="btn" type="button" value="修改" /><br />
    
                <img id="pic" src="images.png" />
    
          </body>
    
          
    
    </html>
    
    
    ```

    分析:
    这里使用了一个布尔变量flag来标识两种状态,使两张图片可以来回切换。

  • 相关阅读:
    284. Peeking Iterator 光是看看下一个值的遍历
    339. Nested List Weight Sum 339.嵌套列表权重总和
    341. Flatten Nested List Iterator展开多层数组
    springcloud之配置中心服务化和高可用
    springcloud之配置中心git
    springcloud之熔断监控Hystrix Dashboard和Turbine
    springcloud之熔断器Hystrix
    springcloud之服务提供与调用
    springcloud之注册中心Eureka
    springcloud之大话springcloud
  • 原文地址:https://www.cnblogs.com/chmusk/p/12465865.html
Copyright © 2011-2022 走看看