2017-01-12 2 views
0

Ich habe mehrere Tasten auf meiner Seite haben sie alle IDs mit dem Namen "1" - "10". Ich habe eine Funktion, die aufgerufen wird, wenn auf die Schaltflächen geklickt wird, und ich möchte diese Funktion lesen die Schaltflächen ID und speichern Sie es als eine Integer-Variable. das habe ich bisher:Speichern der ID der Schaltfläche geklickt in einer Integer-Variablen

Edit: Ich habe meinen Code mit einem Vorschlag aus den Antworten aktualisiert. Bisher kein Erfolg. Es warnt mich nicht die ID.

JS/JQUERY

var transform = function(obj){ 
    var id = obj.id; 
    alert(id);  
} 

HTML

<a href="JavaScript: transform(this)" id="b1"> 

<div class = "test" > </div> 
</a> 

CSS

.test { 
     position: absolute; 
     width: 20%; 
     height: 10%; 
     background-color: black; 

    } 

Antwort

1

Sie benötigen ein Ereignis klicken - href nicht das gleiche wie ein onclick Ereignis. Im Idealfall würde man eine gemeinsame Klasse alle diese Links hinzufügen, dann 1 einfachen Handler machen:

<a class="link" id="1"> 
    <div class="h1"> 
     <img src="https://placehold.it/256" /> 
    </div> 
</a> 

Und die jQuery

$(".link").click(function(e) { 
    console.log(+this.id); 
}); 
+0

Dank. Ich habe deine Methode ausprobiert, aber es scheint nicht zu funktionieren. Kannst du nachsehen, warum? http://codepen.io/anon/pen/bgpJzK – Alter

+0

@Alter - 'var id = obj.id;' - 'obj' ist nicht definiert - es ist' this.id', wie die Antwort zeigt. Überprüfen Sie die Konsole - Sie sehen die Fehler. – tymeJV

0

Gerade

setzen

diese

in Ihrem HTML so

<a onclick="transform(this)" href="http://www.google.com" id="1"> 

Dadurch können Sie das js-Objekt des angeklickten Elements erhalten und daraus können Sie leicht den Wert eines verwendeten Attributs erhalten.

var transform = function(obj){ 
     var id = obj.id; 
     alert(parseInt(id)); 
} 

Chckout this fiddle

+0

Danke. Ich habe deine Methode ausprobiert, aber ohne Erfolg. Ich poste meinen Code jetzt im Hauptfaden. – Alter

+0

Lassen Sie mich einige Änderungen in meiner Antwort vornehmen. Das letzte Mal war ich in Eile – gahse

Verwandte Themen