1. 程式人生 > >JavaScript中setAttribute用法詳解

JavaScript中setAttribute用法詳解

setAttribute基本用法

element.setAttribute(attributename,attributevalue)

setAttribute() 方法新增指定的屬性,併為其賦指定的值,看到w3c的例子

document.getElementsByTagName("INPUT")[0].setAttribute("type","button");

我們經常需要在JavaScript中給Element動態新增各種屬性,這可以通過使用setAttribute()來實現,這就涉及到了瀏覽器的相容性問題。

var bar = document.getElementById("foo");
bar.setAttribute("onclick", "

javascript:alert('This is a test!');");

這裡利用setAttribute指定e的onclick屬性,簡單,很好理解。但是IE不支援,IE並不是不支援setAttribute這個函式,
而是不支援用setAttribute設定某些屬性,例如物件屬性、集合屬性、事件屬性,也就是說用setAttribute設定style和onclick這些屬性
在IE中是行不通的。為達到相容各種瀏覽器的效果,可以用點符號法來設定Element的物件屬性、集合屬性和事件屬性。

程式程式碼

document.getElementById("foo").className = "fruit";
document.getElementById("foo").style.cssText = "color: #00f;";
document.getElementById("foo").style.color = "#00f";
document.getElementById("foo").onclick= function () { alert("This is a test!"); }

例子

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Untitled Document</title>
        <script language="JavaScript">
            function change() {
                var input = document.getElementById("li1");
                alert(input.getAttribute("title"));
                input.setAttribute("title", "mgc");
                alert(input.getAttribute("title"));
            }
        </script>
    </head>
    <body>
        <ul id="u">
            <li id="li1" title="hello">Magci</li>
            <li>J2EE</li>
            <li>Haha!</li>
        </ul>
        <input type="button" value="Change" onClick="change();" />
    </body>
</html>

例子,一個企業網站用到的就是當我們點選時自動給href重新賦值然後點選有值了

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div id="xxx"><a href="index.html#home" id="Dpre" onclick="testaa()">aaa</a></div>
<div id="xxx"><a href="index.html#xmqw" id="Dnext" onclick="testaa()">aaabb</a></div>
<script language="javascript">

function testaa()
{
 var url = window.location.href; 
 var array = url.split("#");
 if(array[1]==undefined)
 {
  array[1] ='home';
 }
 //Dpre 父級
 //Dnext 子級
 switch(array[1])
 {
  case 'home':
   getid('Dpre').setAttribute('href','index.html#home');
   getid('Dnext').setAttribute('href','index.html#xmqw');
    
   break;
  case 'xmqw':
   getid('Dpre').setAttribute('href','index.html#home');
   getid('Dnext').setAttribute('href','index.html#sspj');
   break;
  case 'sspj':
   getid('Dpre').setAttribute('href','index.html#xmqw');
   getid('Dnext').setAttribute('href','index.html#cpjd');
   break;
  case 'cpjd': 
   getid('Dpre').setAttribute('href','index.html#sspj');
   getid('Dnext').setAttribute('href','index.html#zyzx');
   break; 
  case 'zyzx':
   getid('Dpre').setAttribute('href','index.html#cpjd');
   getid('Dnext').setAttribute('href','index.html#zxdt');
   break; 
  case 'zxdt':
   getid('Dpre').setAttribute('href','index.html#zyzx');
   getid('Dnext').setAttribute('href','index.html#hrzy');
   break;
  case 'hrzy':
   getid('Dpre').setAttribute('href','index.html#zxdt');
   getid('Dnext').setAttribute('href','index.html#home');
   break;
 }

}

function abc()
{
 alert(0);
}
function getid(id)
{
 return document.getElementById(id);
}
//alert(getid('xxx'));
</script>

</body>
</html>

相關推薦

JavaScriptsetAttribute用法

setAttribute基本用法 element.setAttribute(attributename,attributevalue) setAttribute() 方法新增指定的屬性,併為其賦指定的值,看到w3c的例子 document.getElementsBy

javascriptreplace()用法

replace()最簡單的算是能力就是簡單的字元替換。示例程式碼如下: <script language="javascript"> var strM = "javascript is a good script language"; //在此我想將字母a替

JavaScript的this

定律 htm uid js代碼 tdd ati tom dmr doctype 前言 this用法說難不難,有時候函數調用時,往往會搞不清楚this指向誰?那麽,關於this的用法,你知道多少呢? 下面我來給大家整理一下關於this的詳細分析,希望對大家有所幫助!

JavaScriptgetBoundingClientRect()方法

script otto java chrome 頁面 支持 urn client fire getBoundingClientRect() 這個方法返回一個矩形對象,包含四個屬性:left、top、right和bottom。分別表示元素各邊與頁面上邊和左邊的距離。

Pythonenumerate用法

num readline 文件的 簡單 += () 用法 字符 計數 enumerate()是python的內置函數、適用於python2.x和python3.xenumerate在字典上是枚舉、列舉的意思enumerate參數為可遍歷/可叠代的對象(如列表、字符串)enu

C#const用法

htm 鏈接 服務器 span img body 用法詳解 -s 設計 本文實例講述了C#中const用法。分享給大家供大家參考。具體用法分析如下: const是一個c語言的關鍵字,它限定一個變量不允許被改變。使用const在一定程度上可以提高程序的安全性和可靠性,另外,

C#protected用法

base 而是 報錯 public 我們 此刻 訪問 .html 定義 轉自(https://www.cnblogs.com/wangyt223/archive/2012/08/08/2627801.html) 在c#的可訪問性級別中,public和private算是最

javascriptnew關鍵字

nbsp pan cnblogs undefined 百度地圖 實例 code undefine tro 和其他高級語言一樣 javascript 中也有 new 運算符,我們知道 new 運算符是用來實例化一個類,從而在內存中分配一個實例對象。 但在 javascript

JavaSimpleDateFormat用法

轉自:http://blog.csdn.net/linbooooo1987/article/details/7540999 [java]  view plain  copy

Java二進位制0用法

題目內容: 計算機內部用二進位制來表達所有的值。一個十進位制的數字,比如18,在一個32位的計算機內部被表達為00000000000000000000000000011000。可以看到,從左邊數過來,在第一個1之前,有27個0。我們把這些0稱作前導的零。 現在,你的任務是寫一個程式,輸入一

Spring@Async用法及簡單例項

Spring中@Async用法 引言: 在Java應用中,絕大多數情況下都是通過同步的方式來實現互動處理的;但是在處理與第三方系統互動的時候,容易造成響應遲緩的情況,之前大部分都是使用多執行緒來完成此類任務,其實,在spring 3.x之後,就已經內建了@Async來完美解決這個問題,本文將完成

STLmap用法

Map是STL的一個關聯容器,它提供一對一(其中第一個可以稱為關鍵字,每個關鍵字只能在map中出現一次,第二個可能稱為該關鍵字的值)的資料處理能力,由於這個特性,它完成有可能在我們處理一對一資料的時候,在程式設計上提供快速通道。這裡說下map內部資料的組織,map內部自建一顆

C++的STLmap用法

Map是STL的一個關聯容器,它提供一對一(其中第一個可以稱為關鍵字,每個關鍵字只能在map中出現一次,第二個可能稱為該關鍵字的值)的資料 處理能力,由於這個特性,它完成有可能在我們處理一對一資料的時候,在程式設計上提供快速通道。這裡說下map內部資料的組織,map內部自建一顆紅黑樹(一 種非嚴格意義上的平衡

Elasticsearch——Date Math在索引用法

在elasticsearch中,有時會想要通過索引日期來篩選查詢的資料,此時就需要用到日期數學表示式。 更多內容參考Elasticsearch翻譯彙總 基於日期數學表示式的索引 模式如下: <static_name{date_math_expr{date_format|time_zone}}>

javaArrayList用法,基本用法(含增刪改查)

1、什麼是ArrayList ArrayList就是動態陣列,它提供了①動態的增加和減少元素 ②實現了ICollection和IList介面 ③靈活的設定陣列的大小ArrayList是一個其容量能夠動態增長的動態陣列。它繼承了AbstractList,實現了List、Rand

C++set用法

1.關於set C++ STL 之所以得到廣泛的讚譽,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封裝了許多複雜的資料結構演算法和大量常用資料結構操作。vector封裝陣列,list封裝了連結串列,map和se

switch語句default用法

當年學C語言switch開關語句的時候,很多人會告訴你它是這麼用的:switch(表示式){ case常量表達式1: 語句1;break; case常量表達式2: 語句2;break; … c

Pythonglobal用法

1. 文件說明    在python3.3.2的官方api幫助文件上看到, 如下一段話: The global statement is a declaration which holds for the entire current code block. It mean

javascriptcall方法

轉載自http://www.cnblogs.com/sweting/archive/2009/12/21/1629204.html 應用於:Function 物件  要求  版本 5.5  呼叫一個物件的一個方法,以另一個物件替換當前物件。  call([thisObj[,arg1[, arg2[, [,.

C++list用法

1.關於list容器 list是一種序列式容器。list容器完成的功能實際上和資料結構中的雙向連結串列是極其相似的,list中的資料元素是通過連結串列指標串連成邏輯意義上的線性表,也就是list也具有連結串列的主要優點,即:在連結串列的任一位置進行元素的插入、刪除操作都