webForumDet fria alternativet

hasAttribute för IE6 & IE7

4 svar · 508 visningar · startad av standard sparty

standard spartyMedlem sedan sep. 201055 inlägg
#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=????
}
SPiNMedlem sedan mars 20005 832 inlägg
#2
if (x[i].attributes['class']) {
    ...

Möjligtvis.

standard spartyMedlem sedan sep. 201055 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?

SPiNMedlem sedan mars 20005 832 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.

standard spartyMedlem sedan sep. 201055 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)

Genererad på 370 ms · cache AV · v20260730165559-full.f96bc7eb