我正试图从不同的onclicks获取id attr。
这是我的html。
<div id="name-1">
<a href="#" class="view">
<div>
<div id="name-2">
<a href="#" class="view">
<div>
<p>Name: <span class='name'></span></p>
<script>
$(".view").click(function() {
var id = $(".view").closest("div").attr("id");
$('.name').html(id);
});
</script>
当我点击第一个视图时,我看到“name-1”但是当我点击第二个视图时没有任何反应。此外,当我点击第二个名称时,它显示“name-1”。我知道这可能很容易解决但是周五所以我很感激帮助。
答案 0 :(得分:4)
更改
var id = $(".view").closest("div").attr("id");
到
var id = $(this).closest("div").attr("id");
现在,您当前的代码正在查看页面上的第一个.view
,而不是触发其点击事件的.view
。
答案 1 :(得分:1)
原因是您使用view
类选择器来获取最接近的ID。因此,它会查找第一个可用的view
,并为您获取第一个DIV
的ID。
考虑使用$(this)
获取所点击元素的最近ID。
$(".view").click(function() {
var id = $(this).closest("div").attr("id");
});
别忘了阅读这篇文章&#34; jQuery this &#34;:http://remysharp.com/2007/04/12/jquerys-this-demystified/