获取点击的div的ID

Cor*_*eDo 2 html javascript jquery

我想id在jQuery中点击它时选择当前div.
例如,假设我有这样的HTML:

<div class="item"  id="10">hello world</div>
<div class="item_10">hello people</div>
Run Code Online (Sandbox Code Playgroud)

当我点击类上的第一个div时.item,我想复制id当前div +加上数字(10),所以它将("div id" + 10)等于第二个dev class = item_10.

我尝试使用,currentid = this.id;但它不起作用:(!

Phr*_*ogz 8

首先,请注意,id在HTML4中,以数字开头的属性在语法上是非法的.如果您正在使用id="10",请确保您使用的是HTML5 doctype(<!DOCTYPE html>).

很难说为什么你没有看到你的实际代码就行不通.大概是因为你在更高的元素(如身体)上注册事件,并且this.idid更高元素而不是你点击的元素.

在这种情况下,您希望使用target事件的属性来查找您单击的内容.例如:

$(document.body).click(function(evt){
  var clicked = evt.target;
  var currentID = clicked.id || "No ID!";
  $(clicked).html(currentID);
})
Run Code Online (Sandbox Code Playgroud)

见过:http://jsfiddle.net/Gra2P/

如果您正在注册特定元素,那么this.id 确实有效:

$('div').click(function(evt){
  var currentID = this.id || "No ID!";
  $(this).html(currentID);
})
Run Code Online (Sandbox Code Playgroud)

见过: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);
})
Run Code Online (Sandbox Code Playgroud)

见过:http://jsfiddle.net/Gra2P/2/