javascript - 获取点击的div的id

标签 javascript jquery html

我想在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. 它注册了许多事件处理程序而不是 1 个,并且
  2. 如果在运行此代码后向文档添加其他 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/

相关文章:

javascript - 三个JS boxGeometry,渲染警告: Render count or primcount is 0

javascript - 使用 Ethers JS 估算 gas 价格

javascript - Aurelia + Redux 性能

jquery - 第一次点击时,CSS3 工作,但第二次点击时不工作,为什么?

javascript - 使用 FontAwesome 5.0 SVG 框架时在图标之间切换

javascript - 连接变量+选择器

javascript - 避免在 <head> 上加载 meteor 脚本

javascript - HTML5 视频在 javascript 中完全预加载

html - 与 FlexBox 等高(下一级)

html - 背景附件: fixed not working on android/ios