获取点击的div的ID

时间:2011-11-13 12:59:09

标签: 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),因此它将是{{1}等于第二个dev class = item_10。

我尝试使用("div id" + 10),但它不起作用:(!

5 个答案:

答案 0 :(得分:8)

首先,请注意,以数字开头的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,则不会处理它们。
  3. 在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/

答案 1 :(得分:2)

我认为你正在尝试做类似的事情:

$(".item").click(function(){
    var id = $(this).attr("id");
    var el = $(".item_" + id);
});

现在el是你的第二个div。

答案 2 :(得分:2)

您只需使用this.id

即可
$('div').click(function() {
    var divid = this.id;
    alert($('.item_'+divid).html());
});

Demo

答案 3 :(得分:1)

这样的东西?:

$('div').click(function() {
    theId = $(this).attr('id');
    //Do whatever you want with theId.
});

答案 4 :(得分:0)

这可以这样做:

$('.item').click(function() {
var divId = $(this).attr("id");

});