找到所有具有公共名称jquery的id的文本框

时间:2015-04-21 08:14:25

标签: javascript jquery

我想在列的每一行中找到所有文本框,并在stringbuilder中检索属性值。

<table width="100%" class="normal" id="tblResults" border="0" cellSpacing="0" cellPadding="0">
    <TBODY>
    <TR class=header>
    <TH class=sortLPad title="Sort by URN" onclick="reSort('0')" align=left>URN </TH>

    <TH class=sortLPad title="Sort by ShowRoom" onclick="reSort('5')" align=left>Show Room</TH></TR>

    <P></P>

    <TR EventId="504">
    <TD id=URN noWrap>23KV9878788</TD> 

    <TD id="ShowRoom" class=lPad><INPUT onfocusin=clearField(this); id="ShowRoom0" onfocusout=resetField(this); onkeypress=validate(this) maxLength=1 value=1 size=1 version="2000120420142859" elementname="ShowRoom" engineid="504" carid="244"></TD>

    </TR>

    <TR EventId="403">
    <TD id=URN noWrap>889878744</TD> 

    <TD id="ShowRoom" class=lPad><INPUT onfocusin=clearField(this); id="ShowRoom2" onfocusout=resetField(this); onkeypress=validate(this) maxLength=1 value=1 size=1 version="2000120420142859" elementname="ShowRoom" engineid="882" carid="442"></TD>

    </TR>

    </TBODY>
</Table>

<input type="button" id="continue" value="continue">

这是我试过的Jquery

    $("#continue").click(function(){
       alert("Clicked");

     $("#tblResults TBODY TR").each(function(i, row){
          alert("each tr" + i + row);

            var elementValue = $(this).child('td').find('input[id*="ShowRoom"]');

        alert($(elementValue).attr("carid"));

       });
  });
});

第一个问题是它不是通过每一行循环?第二个永远不会达到alert($(elemnetValue).attr("carid"));

2 个答案:

答案 0 :(得分:2)

jQuery没有.child()方法,因此您的代码行可能会导致错误并停止执行代码(您应该查看调试日志以查看此类错误)。

你可以改变这个:

var elemnetValue = $(this).child('td').find('input[id*="ShowRoom"]');

到此:

var elemnetValue = $(this).find('input[id*="ShowRoom"]');

但是,您可以通过更改此内容进一步简化:

   $("#tblResults TBODY TR").each(function(i, row){
        var elemnetValue = $(this).find('input[id*="ShowRoom"]');
        if (elemnetValue.length) {
            console.log(elemnetValue.attr("carid"));
        }
   });

到此:

   $('#tblResults input[id*="ShowRoom"]').each(function(i, item){
       console.log($(this).attr("carid"));
   });

P.S。大多数人拼写的单词看起来像你element,而不是elemnet

答案 1 :(得分:2)

您正在寻找的jQuery函数是.children()而不是.child()