2017-06-22 5 views
-4

Also versuche ich die ID eines angeklickten Elements zu bekommen, eigentlich ein div.jQuery: Wie bekomme ich eine angeklickte Element-ID?

Mein Code sieht wie folgt aus:

$(document).ready(function() { 
 
    $(".photo").on("click", function() { 
 
     console.log("Clicked"); 
 
     var id = $(this).attr("id"); 
 
     console.log(id); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="main"> 
 
    <div class="gallery"> 
 
    <div class="wrapper"> 
 
     <img src="foo/img.jpg" class="photo" id="1"> 
 
    </div> 
 
    </div> 
 
</div>

Diese

> Clicked 
> 1 

auf der Konsole zurückkehren. Das funktioniert in diesem Snippet ganz gut, funktioniert aber irgendwie nicht auf meiner eigentlichen Seite.

Es "ignoriert" meinen Klick, als ob er unter etwas ist und nicht angeklickt werden kann.

Wenn ich

$(".gallery").on("click", function() { 

ändern, es funktioniert (wenn ich eine ID natürlich hinzufügen).

Irgendwelche Ideen, wie ich es beheben kann oder was ich verpasst habe?

Thx!

+4

Ist das ein Tippfehler in deinem 'img'? Es sollte "class' not' clsss' sein ... – Li357

+0

Ich habe deinen Codeausschnitt bearbeitet, jQuery hinzugefügt und clsss in class geändert. Dann hat dein Schnipsel funktioniert! – Schlumpf

+3

@Schlumpf Entfernen Sie den Fehler nicht, wenn Sie die Frage bearbeiten! – Barmar

Antwort

1
  1. You "$ (this) [0]" verwenden können, id name
  2. Anfangsbuchstabe von id name empfehlen die Verwendung von don `t erhalten Nummer

$(document).ready(function() { 
 
    $(".gallery").on("click", function() { 
 
     console.log("Clicked"); 
 
     var id = $(this)[0].id; 
 
     console.log(id); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="main"> 
 
    <div class="gallery"> 
 
    <div class="wrapper"> 
 
     <img src="foo/img.jpg" class="photo" id="1"> 
 
    </div> 
 
    </div> 
 
</div>

Verwandte Themen