我想在jQuery中点击时选择当前div的id
。
例如,假设我有这样的 HTML:
<div class="item" id="10">hello world</div>
<div class="item_10">hello people</div>
当我点击 .item
类的第一个 div 时,我想复制当前 div 的 id
+ 添加数字 (10),所以它将是 ("div id"+ 10)
等于第二个开发类 = item_10。
我尝试使用 currentid = this.id;
但它不起作用 :( !
最佳答案
首先,请注意 id
以数字开头的属性在 HTML4 中在语法上是非法的。如果您使用 id="10"
确保您使用的是 HTML5 文档类型 ( <!DOCTYPE html>
)。
如果没有看到您的实际代码,很难说出您所做的为什么不起作用。大概是因为您在更高的元素(如正文)和 this.id
上注册了事件。是 id
那个更高的元素而不是你点击的元素。
在这种情况下,您要使用 target
事件的属性以查找您单击的内容。例如:
$(document.body).click(function(evt){
var clicked = evt.target;
var currentID = clicked.id || "No ID!";
$(clicked).html(currentID);
})
在行动中看到:http://jsfiddle.net/Gra2P/
如果您改为在特定元素上注册,则 this.id
确实有效:
$('div').click(function(evt){
var currentID = this.id || "No ID!";
$(this).html(currentID);
})
在行动中看到:http://jsfiddle.net/Gra2P/1/
然而,这是次理想的,因为:
- 它注册了许多事件处理程序而不是 1 个,并且
- 如果在运行此代码后向文档添加其他 div,则不会处理它们。
在 jQuery 1.7 下,您使用 .on
方法在父元素上创建单个事件处理程序,并为要捕获事件的元素类型选择器,并具有 this
设置给他们。在代码中:
$(document.body).on('click','div',function(evt){
var currentID = this.id || "No ID!";
$(this).html(currentID);
})
在行动中看到:http://jsfiddle.net/Gra2P/2/
关于javascript - 获取点击的div的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111682/