JS之setAttribute和getAttribute

来源:http://www.cnblogs.com/bibiafa/archive/2016/09/12/5865625.html
-Advertisement-
Play Games

1.ele.getAttribute(attributeName); 返回元素的指定屬性值,如果元素沒有該屬性,則返回null 2.ele.setAttribute(attributeName,value); 為元素指定屬性設置值,如果沒有該屬性,則創建該屬性,並賦值 3.在IE 7以及更早版本部分 ...


1.ele.getAttribute(attributeName);

 返回元素的指定屬性值,如果元素沒有該屬性,則返回null

2.ele.setAttribute(attributeName,value);

為元素指定屬性設置值,如果沒有該屬性,則創建該屬性,並賦值

3.在IE 7以及更早版本部分屬性的設置應使用另外的名稱,為了相容IE

<script>
           dom=(function(){
           var fixAttr={
                  tabindex:'tabIndex',
                  readonly:'readOnly',
                  'for':'htmlFor',
                  'class':'className',
                  maxlength:'maxLength',
                  cellspacing:'cellSpacing',
                  cellpadding:'cellPadding',
                  rowspan:'rowSpan',
                  colspan:'colSpan',
                  usemap:'useMap',
                  frameborder:'frameBorder',
                  contenteditable:'contentEditable'
           },
        
           //模擬設置attribute, 
          div=document.createElement('div');
          div.setAttribute('class','t');
        
          var supportSetAttr = div.className === 't';
        
           return {
                   setAttr:function(el, name, val){
                        el.setAttribute(supportSetAttr ? name : (fixAttr[name] || name), val);
                   },
                   getAttr:function(el, name){
                        return el.getAttribute(supportSetAttr ? name : (fixAttr[name] || name));
                    }
              }
        })();
        
        window.onload=function(){
               var mydiv=document.getElementById("d1");
               dom.setAttr(mydiv, 'class', 'bg');
        }
    </script>

在IE 7以及更早版本中,setAttribute('class','fo');能為元素添加class='fo'.

getAttribute('class');能返回fo值,但是為元素添加的類不起作用,應為IE 7及更早版本的類設置用className,而不是class

 4.

getAttribute(attributeName);不僅可以得到元素預設屬性值,還能得到自定義屬性值 ele.attributeName或者ele['attributeName']只能得到元素預設存在的屬性值

5.

var node = ele.getAttributeNode(attributeName)得到屬性節點 console.log(node);//name=value的形式 console.log(node.name); console.log(node.value);
<body>
    <p id="p1" customData="pmx">ppp</p>
    <script>
       var p = document.getElementById("p1");
       var pnode = p.getAttributeNode("customData");
       console.log(pnode)
    </script>
</body>

 

 6.ownerElement返回屬性節點所附屬的元素

語法:

  attrObj.ownerElement

 

 

   

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 組件創建了,就有方法找到這些組件。在DOM、Jquery都有各自的方法查找元素/組件,ExtJS也有自己獨特的方式查找組件、元素。本次從全局查找、容器內查找、form表單查找、通用組件等4個方面介紹組件的查找方式。 ...
  • 1、弱類型:聲明無需指定數據類型,由值決定,查看變數數據類型:typeof(變數); 2、隱式轉換:任何數據類型與string類型相加,結果為string類型; 3、顯式(強制)轉換: ①toString():轉換為字元串; ②parseInt(value):將value轉換為整數;(* 碰到第一個 ...
  • 1、javascript組成: ①核心ECMAScript;②文檔對象模型DOM(Document Object Model);③瀏覽器對象模型BOM(Browser Object Model); 2、javascript特點: ①文本編輯;②無需編譯;③弱類型;④面向對象; 3、內核引擎: ①IE ...
  • 選擇器是jQuery最基礎的東西,本文中列舉的選擇器基本上囊括了所有的jQuery選擇器,也許各位通過這篇文章能夠加深對jQuery選擇器 的理解,它們本身用法就非常簡單,我更希望的是它能夠提升個人編寫jQuery代碼的效率。本文配合截圖、代碼和簡單的概括對所有jQuery選擇器進行 了介紹,也列舉 ...
  • html中的大部分的標簽都有一些糟糕的樣式,有的是標簽天然自帶的,有的是瀏覽器預設設置的,我們在寫網頁時,這些預設的樣式就會時不時的跳出來搗一下亂,搞得我們很是無奈。所以成手在寫css樣式時,一般都會在開頭寫一段初始化程式,來去掉這些預設樣式,比如最簡單的方法就是使用*{margin:0;paddi ...
  • 簡約版: 完整版: ...
  • 在項目中,由於實際描述文字過多,導致初始頁面縱向長度過長,也使得餘下信息利用率降低;所以在文字過多的時候,初始化限制行數是有必要的 1. CSS單行文本溢出,顯示省略號 2. CSS多行文本溢出,顯示省略號 上面兩種適合標簽裡面只有文字的情況,而有時我們會遇到這樣的情況 3. 第三種就是解決上面情況 ...
  • 創建非同步樹形菜單 <ul class="easyui-tree" id="treeMenu"> </ul> $(function(){ $('#treeMenu').tree({ url:'tree_data.json' //url的值是非同步獲取數據的頁面地址 }); }); $result = [ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...