Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery在单击按钮时获取元素的id_Jquery - Fatal编程技术网

使用jquery在单击按钮时获取元素的id

使用jquery在单击按钮时获取元素的id,jquery,Jquery,我有一个动态生成的按钮列表,id是在运行时生成的。如何使用JQuery获取已单击按钮的id 下面是js代码 var btn = " <input type='button' id='btnDel' value='Delete' />"; $("#metainfo").append(txt); //set value of $("#btnDel").attr("id", "btnDel" + $("#hid").attr("value")); var btn=”“; $(“#

我有一个动态生成的按钮列表,id是在运行时生成的。如何使用JQuery获取已单击按钮的id

下面是js代码

var btn = " <input type='button' id='btnDel' value='Delete' />";


$("#metainfo").append(txt); //set value of

$("#btnDel").attr("id", "btnDel" + $("#hid").attr("value")); 
var btn=”“;
$(“#元信息”).append(txt)//设定值
$(“#btnDel”).attr(“id”,“btnDel”+$(“#hid”).attr(“value”);
发布代码后编辑:

var btn = 
  $("<input type='button' value='Delete' />")
    .attr("id", "btnDel" + $("#hid").val())
    .click(function() {
       alert(this.id);
    });
$("body").append(btn);
var btn=
$("")
.attr(“id”,“btnDel”+$(“#hid”).val())
。单击(函数(){
警报(this.id);
});
$(“正文”)。附加(btn);

对于您的示例,它是这样的:

$("#btnDel").click(function() {
  alert(this.id);
});
$("input").click(function() {
  alert(this.id);
});
请注意,您不能循环已有的代码,ID必须是唯一的,否则会产生各种副作用,因为它是无效的HTML。如果您想要任何输入的单击处理程序,请更改选择器,如下所示:

$("#btnDel").click(function() {
  alert(this.id);
});
$("input").click(function() {
  alert(this.id);
});

您应在文档准备就绪(加载)后添加按钮的单击事件:


对于任何元素,无论是按钮还是其他任何元素,我们都可以这样定位它

$(document).click(function(e){
    console.log(e.target.id) 
  
})

这里
e.target.id
为您提供了元素的id。

@Xulfee这是一个示例,您可以将
generatedButton
(不带点)添加到按钮的
class
-属性中,用jQuery()查找它。您在问题中发布的代码不起作用(例如,btn变量仅包含一个带有HTML的字符串,如果浏览器呈现该字符串,则会生成一个按钮,而不是按钮本身),但我更新了这个答案,试图帮助您。所有动态按钮都有唯一的ID,您的代码不起作用。@Xulfee-您是在创建按钮之前运行它,还是在创建按钮并设置ID之后运行它?如果是在创建按钮之前,您需要使用
.live('click',function(){})
而不是
。click(function(){})
添加一个类,比如
generatedButton
或者任何你想要的动态创建的按钮,然后你可以使用Jan Willem B的答案:为什么你首先要更改按钮的id?我发现这是一件奇怪的事情…@gsamaras别对他大喊大叫!gsamaras你太棒了