2016-07-29 8 views
-3

Das ist mein Code-Block.Javascript: Wie erlaube ich einer Schleife, eine ID zu ändern?

Ich möchte Ereignisse (j) auf 3 ändern und erlauben, dass es ein Inkrement von 1 hat, nachdem die Funktion aufgerufen wird. Das Problem ist, dass die   'j'   in   #Ereignisse (j)   gelesen wird als ein Textzeichen und wird es nicht als eine Zahl einfügen. Wie kann ich meinen Code ändern, um dieses Problem zu lösen?

+3

aA.setAttribute ('href', '#Events (' + j + ')'): der letzte Index Ihres Arrays können Sie die for-Schleife und ersetzen sie durch eine einzige Zeile Code entfernen ; –

+2

Und warum überhaupt eine Schleife, wenn Sie nur das letzte Element im Array ändern? – Andreas

+0

Ich verstehe nicht, warum Sie 'events [j]' haben oder was 'aA' ist, vielleicht meinen Sie' events [j] .setAttribute ('href', '#events (' + j + ')'); ' ? Auch das ändert nichts an einer "ID" – NewToJS

Antwort

0

nicht sicher, was Sie versuchen, hier zu erreichen, aber wenn man die j dynamisch in event() Anruf tätigen möchten, sollten Sie die Variable mit Zeichenfolge mit Plus + Zeichen verketten, weil, wie es jetzt ist (durch Anführungszeichen wraped) wird es sein, concedered als String j:

aA.setAttribute('href', '#events('+j+')'); 

Hoffnung, das hilft.

0

events[j]; ist eine leere Aussage hier; es macht absolut nichts. Sie lesen einen Wert im Array, tun aber nichts damit.

'#events(j)' wird als String interpretiert; Notieren Sie sich die Anführungszeichen. Um den Wert von j anstelle des Buchstabens zu verwenden, müssen Sie es außerhalb der Zeichenfolge bewegen und verketten sie, auf diese Weise:

aA.setAttribute('href', '#events(' + j + ')'); // The string '#events(', then the value of j, then a closing brace 
0

Wenn alles, was Sie tun, ist die href eines Elements Änderung der Anzahl übereinstimmen

var events = new Array(4); 

aA.setAttribute('href', '#events(' + events.length - 1 + ')');