2017-06-22 275 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>