我的代码中有一些问题......我正在使用html和jquery .. 我想提醒之前附加的 idPredefineDetail 的值...这是我的代码:
<table id="tablePreDefineDetail">
<tr id="rowPreDefineDetail"><td><input type="checkbox" name="chkPredefineDetail" ><input type="hidden" name="idPredefineDetail" value="1"></td><td width="5"><input type="text" name="txtCodePredefineDetail" value="ab" size="10"></td><td><input type="text" name="txtDescriptionPredefineDetail" id="txtdesk" size="50"></td><td><a href="#"><button class="upPredefine"></button></a><a href="#"><button class="downPredefine"></button></a><a href="#"><button class="removeStdInsBtn"></button></a></td></tr>
<tr id="rowPreDefineDetail"><td><input type="checkbox" name="chkPredefineDetail" ><input type="hidden" name="idPredefineDetail" value="2"></td><td width="5"><input type="text" name="txtCodePredefineDetail" value="ac" size="10"></td><td><input type="text" name="txtDescriptionPredefineDetail" id="txtdesk" size="50"></td><td><a href="#"><button class="upPredefine"></button></a><a href="#"><button class="downPredefine"></button></a><a href="#"><button class="removeStdInsBtn"></button></a></td></tr>
</table>
当我点击按钮删除 removeStdInsBtn ..我正在使用以下代码:
$('#tablePreDefineDetail tr button.removeStdInsBtn').click(function(e){
var obj=$(this);
e.preventDefault();
$("#dialog-confirm").dialog({
buttons : {
"Confirm" : function() {
var idPredefineDetail=$(this).parent().parent().children("input[name=idPredefineDetail]").val();
alert(idPredefineDetail);
$(this).dialog("close");
},
"Cancel" : function() {
$(this).dialog("close");
}
}
});
$('#dialog-confirm').dialog('open');
});
是谁帮助我?
答案 0 :(得分:0)
你没有发布所有的html,但作为第一个猜测,我建议使用closest来遍历DOM树。
var idPredefineDetail=$(this).closest( "#dialog-confirm" ).children("input[name=idPredefineDetail]").val();
答案 1 :(得分:0)
您可以使用最接近的组合并查找。 试试这个:
$('#tablePreDefineDetail tr button.removeStdInsBtn').click(function(e){
var obj=$(this);
e.preventDefault();
$("#dialog-confirm").dialog({
buttons : {
"Confirm" : function() {
var idPredefineDetail=obj.closest("tr").find("input[name=idPredefineDetail]").val();
alert(idPredefineDetail);
$(this).dialog("close");
},
"Cancel" : function() {
$(this).dialog("close");
}
}
});
$('#dialog-confirm').dialog('open');
});
答案 2 :(得分:0)
我相信$(this)实际上是指向#dialog-confirm。您应该使用在单击回调函数开始时设置的obj变量。你也没有回去,你需要另一个parent()调用。
var idPredefineDetail=obj.parent().parent().parent().children("input[name=idPredefineDetail]").val();
alert(idPredefineDetail);
$(this).dialog("close");
答案 3 :(得分:0)
在这里,我想修改下面提到的最初由Cybernate发布的代码
$('#tablePreDefineDetail tr button.removeStdInsBtn')。click(function(e){var obj = $(this);
e.preventDefault();
$("#dialog-confirm").dialog({
buttons : {
"Confirm" : function() {
var idPredefineDetail=obj.attr("id");
alert(idPredefineDetail);
$(this).dialog("close");
},
"Cancel" : function() {
$(this).dialog("close");
}
}
});
$('#dialog-confirm').dialog('open');
});
例如,我有一个像这样的超链接。clickme
当我点击此链接时,我访问的值是id ='clickit'as obj.attr(“id”);用来。 所以我们可以在id,或名称或其他标签属性中放置一个必需的值,稍后我们可以轻松访问它...