Javascript 具有多个具有相同属性(类、类型、值等)的按钮,可以;指出;他们的父DIV何时被调用?

Javascript 具有多个具有相同属性(类、类型、值等)的按钮,可以;指出;他们的父DIV何时被调用?,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我搞不清楚这件事。我想这样做,以便我可以在许多不同的DIVs中放置一个按钮,但按钮的所有信息都相同(类别、类型、值等),这是因为它是DIV的一个编辑按钮,因此它只是自动包含在创建的任何新DIV中的东西,我的服务器端应用程序将自动生成这些按钮。因此,问题是如何获取父DIV的ID,我对此有一些问题,因为它似乎总是默认为DIVupd1,即使我单击upd2中包含的按钮,我也一直在搜索它,但到目前为止,我找到的所有东西都没有让我摆脱这个问题 <div id="upd1"> <in

我搞不清楚这件事。我想这样做,以便我可以在许多不同的
DIV
s中放置一个按钮,但按钮的所有信息都相同(类别、类型、值等),这是因为它是DIV的一个编辑按钮,因此它只是自动包含在创建的任何新DIV中的东西,我的服务器端应用程序将自动生成这些按钮。因此,问题是如何获取父DIV的ID,我对此有一些问题,因为它似乎总是默认为DIV
upd1
,即使我单击
upd2
中包含的按钮,我也一直在搜索它,但到目前为止,我找到的所有东西都没有让我摆脱这个问题

<div id="upd1">
    <input id= "button" class="button" type="submit" value="Click to edit this Panel" /> 
</div>

<div id="upd2">
    <input id= "button"  class="button" type="submit" value="Click to edit this Panel" /> 
</div>

then I have:

$("#button").click(function() {
    dividediting = $("#button").closest("div[id^='upd']").attr("id");
    alert(dividediting);
}); 

那么我有:
$(“#按钮”)。单击(函数(){
dividediting=$(“#按钮”).closest(“div[id^='upd']).attr(“id”);
警报(分割);
}); 
试试这个:

$(".button").click(function() { 
   var dividediting = $(this).parent().attr('id');
   alert(dividediting); 
});  
不能有两个具有相同
id的项目-必须在每个按钮上使用不同
id的类。

您的按钮需要一个类,如下所示:

$(".button").click(function() {
    dividediting = $(this).closest("div[id^='upd']").attr("id");
    alert(dividediting);
}); 

#button
是一个搜索
id=“button”
而不是您想要的
class=“button”
的按钮。另外,您还需要处理程序中的
$(this)
,因此您得到的是与单击的元素最近的
,而不是第一个匹配的
.button
元素。

首先,为什么要使用
$(“#button”)
我在DOM中没有看到任何id=“button”,其次,您可以使用它

var dividediting = $(".button").parent().attr("id");
alert(dividediting);

你的
“#按钮”
应该是“.button”`,顺便说一句,我的错误是,我的实际脚本中有id=“button”,当我把它放到这里的帖子中时,我只是过度编辑了它。。我改变了它没关系,我以前也这么做过。你不能在两个对象上使用相同的id。是的,我只是说如果它给出一个错误会更好,这样会使它变得更明显:)因为如果你不抓住它会浪费时间,我不能相信我错过了,我之前用“这个”来做其他事情,现在完全有道理了……我会试试的that@Nick有趣的是,我修改了(我通常使用attr(“id”)但是因为没有使用标准的JS函数而受到谴责)。@Graphain-你需要
.parent()[0].id
.parent().get(0).id
,这也是有效的(它必须有一些父函数)。@Rick,您不能在两个计算机上使用相同的idobjects@Nick啊,谢谢,我刚刚像最初一样将其返回到attr(“id”)。
.class
无法修复OP在内部选择器中使用
#按钮的事实。您还需要第二行中的.class,
$(“.button”)
@Graphain-Oops缺少内部的、已修复的、,@phoffer实际上你想把
$(这个)
放在那里。你说得对。我被那个小的
#
卡住了,忘了。我的错误是,我的实际脚本中有id=“button”,当我把它放到这里的帖子中时,我只是过度编辑了它。。我更改了它否OP不能,这将给出第一个按钮的父级,而不是单击的按钮的父级。啊,是的,因为在您的DOM中有2个
.button
类,所以第一个
.button
将被接受,但是,如果在事件内部调用它,可以使用
this
而不是
。按钮
选择器,就像Graphain的示例一样。