2017-06-22 492 views
-4

所以我想獲得點擊元素的ID,實際上是一個div。jQuery:如何獲得點擊元素ID

我的代碼如下所示:

$(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>

這應該在控制檯上返回

> Clicked 
> 1 

。這在這個片段中工作得很好,但不知何故在我的實際網站中不起作用。

它「忽略」我的點擊,就像它在某物之下並且無法點擊一樣。

如果我改變

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

正常工作(當我添加過程的ID)。

任何想法如何解決它或我錯過了什麼?

Thx!

+4

這是你的'img'中的一個錯字嗎?它應該是'class'而不是'clsss' ... – Li357

+0

我編輯了你的代碼片段,添加了jQuery並將clsss改爲class。然後你的片段正在工作! – Schlumpf

+3

@Schlumpf編輯問題時不要刪除錯誤! – Barmar

回答

1
  1. 你可以用 「$(本)[0]」 得到ID名稱
  2. ID名稱的第一個字母不`噸推薦使用數字

$(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>