Heim > Web-Frontend > js-Tutorial > Hauptteil

Verwendung der setAttribute()-Funktion in Javascript und ihre Kompatibilitäts-Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 15:49:37
Original
1543 Leute haben es durchsucht

Die Funktion setAttribute() kann das Attribut des Objekts festlegen. Wenn dieses Attribut nicht vorhanden ist, wird es erstellt.

Grammatikstruktur:

el.setAttribute(name,value)

Parameterliste:

Parameterbeschreibung
Name ist erforderlich. Gibt den festzulegenden Attributnamen an.
Wert ist erforderlich. Gibt den festzulegenden Eigenschaftswert an.

Codebeispiel:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8"> 
<script type="text/javascript"> 
window.onload=function(){ 
 var mydiv=document.getElementById("mydiv"); 
 mydiv.setAttribute("id","newid"); 
 alert(mydiv.getAttribute("id")); 
} 
</script> 
</head> 
<body> 
<div id="mydiv"></div> 
</body> 
</html>

Nach dem Login kopieren

Der obige Code kann den ID-Attributwert des Div zurücksetzen und den neu festgelegten ID-Attributwert anzeigen.
Beispiel 2:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<script type="text/javascript"> 
window.onload=function(){ 
 var mydiv=document.getElementById("mydiv"); 
 mydiv.setAttribute("newAttr","attrValue"); 
 alert(mydiv.getAttribute("newAttr")); 
} 
</script> 
</head> 
<body> 
 <div id="mydiv"></div> 
</body> 
</html>
Nach dem Login kopieren

Der obige Code kann den newAttr-Attributwert des div festlegen und diesen Attributwert anzeigen. Hier muss besonders beachtet werden, dass die Funktion setAttribute() zunächst dieses Attribut erstellt und ihm dann einen Wert zuweist, da div standardmäßig nicht über das Attribut newAttr verfügt.

Die beiden oben genannten Codebeispiele können in allen gängigen Browsern erfolgreich ausgeführt werden. Dies bedeutet jedoch nicht, dass die Funktion setAttribute() mit jedem Browser kompatibel ist.

Sehen Sie sich ein anderes Codebeispiel an:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<style type="text/css"> 
.textcolor{ 
 font-size:18px; 
 color:red; 
} 
</style> 
<script type="text/javascript"> 
window.onload=function(){ 
 var mydiv=document.getElementById("mydiv"); 
 mydiv.setAttribute("class","textcolor"); 
} 
</script> 
</head> 
<body> 
 <div id="mydiv"></div> 
</body> 
</html>
Nach dem Login kopieren

Der obige Code kann die Schriftgröße auf 18 Pixel und die Schriftfarbe auf Rot in Standardbrowsern festlegen, er wird jedoch nicht in IE6- und IE7-Browsern wirksam.

Sie können jedoch weiterhin mydiv.getAttribute("class") verwenden, um den Attributwert „textcolor“ abzurufen.

Das heißt, in IE6- oder IE7-Browsern kann die Funktion setAttribute() verwendet werden, sie ist jedoch nicht für alle Attribute wirksam.

Die folgenden Attribute weisen die oben genannten Probleme auf:

1.Klasse

2.für

3.Zellenabstand

4.Zellenpolsterung

5.tabindex

6.readonly

7.maxlength

8.rowspan

9.colspan

10.usemap

11.frameborder

12.contenteditable

13.Stil

Um das obige Problem zu lösen, müssen wir eine universelle browserübergreifende Schnittstellenmethode zum Festlegen von Elementattributen schreiben:

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'
 },
    
 div=document.createElement('div');
 div.setAttribute('class','t');
    
 var supportSetAttr = div.className === 't';
    
 return {
  setAttr:function(el, name, val){
  el.setAttribute(supportSetAttr &#63; name : (fixAttr[name] || name), val);
  },
  getAttr:function(el, name){
  return el.getAttribute(supportSetAttr &#63; name : (fixAttr[name] || name));
 }
}
})();

Nach dem Login kopieren

Erstens verwenden Standardbrowser direkt die ursprünglichen Attributnamen. Zweitens verwenden IE6/7-Attribute, die oben nicht aufgeführt sind, immer noch die ursprünglichen Attributnamen. Schließlich verwenden diese speziellen Attribute fixAttr.

Dann kann das obige Codebeispiel in die folgende Form geändert werden:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8"> 
<style type="text/css"> 
.textcolor{ 
 font-size:18px; 
 color:red; 
} 
</style> 
<script type="text/javascript"> 
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' 
 }, 
     
 div=document.createElement('div'); 
 div.setAttribute('class','t'); 
     
 var supportSetAttr = div.className === 't'; 
     
 return { 
  setAttr:function(el, name, val){ 
  el.setAttribute(supportSetAttr &#63; name : (fixAttr[name] || name), val); 
  }, 
  getAttr:function(el, name){ 
  return el.getAttribute(supportSetAttr &#63; name : (fixAttr[name] || name)); 
 } 
} 
})(); 
window.onload=function(){ 
 var mydiv=document.getElementById("mydiv"); 
 dom.setAttr(mydiv, 'class', 'textcolor'); 
} 
</script> 
</head> 
<body> 
</body> 
</html>
Nach dem Login kopieren

Der obige Code ist in allen gängigen Browsern gültig und kann die Schriftgröße auf 18 Pixel und die Farbe auf Rot einstellen.
Für das Stilattribut können Sie aus Kompatibilitätsgründen el.style.color="xxx" verwenden.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!