Frage

Ist das der richtige Weg?

<a id="load" href="#" class="btn load" onclick="request(this); $('#load').fadeOut(2000)">add</a>

<a href="#" id="test" onClick="alert( 'TEST!' )">here</a>

<script language="javascript">
var requests = 2;

function request(self)
{if(self.href != "#")
requests -= 1;

if(requests === 0)
document.getElementById("test").id= "nextstep";}
</script>

Ich möchte, dass sich id="test" in id="nextstep" ändert, wenn die Anforderungen = 0 sind.

War es hilfreich?

Lösung

Du könntest es versuchen:

document.getElementById('test').setAttribute('id', 'nextstep');

Andere Tipps

Genau so würden Sie es tun, solange Sie es in Skript -Tags einwickeln ...

<script language="javascript" type="text/javascript">
if(requests === 0){
    document.getElementById('test').id = "nextstep";
}
</script>

Wenn Sie versuchen, dies auf dem Klick dieses Ankers auszulösen, würden Sie verwenden:

<script language="javascript" type="text/javascript">
function changeID(){
    if(requests === 0){
        document.getElementById('test').id = "nextstep";
        alert('TEST!');
    }
}
</script>

<a href="#" id="test" onclick="changeID()">Test</a>

BEARBEITEN: Nun, Sie haben den Inhalt Ihrer Frage geändert, nachdem ich dies gepostet habe ...

Sie müssen "setAttribute" verwenden, um die ID des Anker -Tags zu ändern.

Sie haben den Teil getElementById ('Test') richtig, aber nur werfen ".Setattribute ('id', 'NextStep');"

Ich hoffe, das hilft!

if(self.href != "#")

Da ist dein Problem.Link-Hrefs werden vom Browser kanonisiert, sodass ein Link „#“ auf der Seite „http://www.example.com/' hat ein href-Attribut von 'http://www.example.com/#“ und entspricht nicht der Bedingung.

Vermeiden Sie die Verwendung des Namens „self“, da er mit dem Namen des globalen Objekts (auch bekannt als „window“) kollidiert.Sie können die ungeschickte Übergabe von „self“ vermeiden, indem Sie den Handler aus JavaScript zuweisen:

document.getElementById('load').onclick= request;

anstatt der onclick Attribut, dann könnten Sie „this“ in request() verwenden.request() sollte auch return false; um zu verhindern, dass dem Link gefolgt wird (wodurch der Browser nach oben scrollt).Noch besser wäre es, a zu verwenden <button> (oder <input type="button">), da es sich um eine Aktionsschaltfläche handelt und nicht um einen Link, den Sie in einem neuen Fenster oder Lesezeichen öffnen könnten.(Sie können jederzeit CSS verwenden, damit es weniger wie eine Schaltfläche aussieht.)

Verwenden Sie setAttribute() nicht für HTML, da es im IE zu Problemen kommt, die nichts mit dieser Verwendung zu tun haben.Einstellung element.id war schon in Ordnung.

Aber das alles scheint eine ziemlich seltsame Vorgehensweise zu sein, was Sie auf jeden Fall tun möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top