如何获得行表附加值

时间:2011-02-17 03:19:49

标签: jquery html jquery-ui

我的代码中有一些问题......我正在使用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');
 });
是谁帮助我?

4 个答案:

答案 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)

在这里,我想修改下面提到的最初由Cyber​​nate发布的代码

$('#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,或名称或其他标签属性中放置一个必需的值,稍后我们可以轻松访问它...