webForumDet fria alternativet

hasAttribute för IE6 & IE7

JavaScriptur Javascript

4 svar · 508 visningar · startad av standard sparty

Medlem sedan sep. 201041 inlägg
Frågan#1

hej
jag har använt följande kod på en massa ställen:

if(x[i].hasAttribute('class')){

jag trodde att jag testat det i gamla IE men det hade jag visst inte. Nu undrar jag om man kan få även de webläsare som inte stöder hasAttribute att förstå koden.
Jag tänkte något liknande:

if(!window.hasAttribute){
var hasAttribute=????
}
Medlem sedan mars 20007 896 inlägg
#2
if (x[i].attributes['class']) {
    ...

Möjligtvis.

Medlem sedan sep. 201041 inlägg
#3
x.attributes['align']

Get the align attribute object of node x. If the node has no align attribute, it returns undefined (except in IE, where it returns an attribute object that has no value.)

hur bör koden se ut då för att även upptäcka internet explorers no value? så här:

if (x[i].attributes('class')!='undefined' || x[i].attributes('class')!=null){

eller kanske:

if (x[i].attributes('class')!='undefined' || x[i].attributes('class')!=''){

? eller något annat?

Medlem sedan mars 20007 896 inlägg
#4

Aha, nu hänger jag med på var du menar :-)

if (typeof x[i].attributes['class'] != 'undefined') {
    /* Has class! */
}

Notera att det är hakparenteser runt attributnamnet.

Medlem sedan sep. 201041 inlägg
#5

Ja precis. Om elementet inte har attributet class så ska stycket inte köras. Nu funkar det fint. Tack så mycket för hjälpen SPIN.

(dessvärre framkom ett annat fel nu. Mer om det i en ny tråd)

138 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)