我想在列的每一行中找到所有文本框,并在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"));
答案 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()
。