当我在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)
,但它不起作用:(!
答案 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);
})
如果您正在注册特定元素,那么this.id
会工作:
$('div').click(function(evt){
var currentID = this.id || "No ID!";
$(this).html(currentID);
})
见过:http://jsfiddle.net/Gra2P/1/
这是次理想的,因为:
在jQuery 1.7下,使用.on
方法在父元素上创建单个事件处理程序,其中包含要捕获事件的元素类型的选择器,并将this
设置为他们。在代码中:
$(document.body).on('click','div',function(evt){
var currentID = this.id || "No ID!";
$(this).html(currentID);
})
答案 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());
});
答案 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"); });