我正在使用以下函数尝试通过从上面的行引用它来获取元素的html(我觉得我必须这样做,因为我赢了不进入)。
function test() {
var rowAmount = $("#orderTable > tbody > tr").length;
for(i = 0; i < rowAmount; i++) {
$( "#orderTable > tbody > tr :eq(i)" ).setAttribute( "id", "row" + (i + 1) );
}
alert($( "tr#row1" ).next().find( "td.qty" ).html());
}
我正在使用for循环来设置我拥有的行的ID,我想要引用的行。我将根据这些行中的值插入新行。
我得到的错误是这一行,
$( "#orderTable > tbody > tr :eq(i)" ).setAttribute( "id", "row" + (i + 1) );
返回错误,undefined不是函数。
有谁知道为什么?
提前致谢。麦克
答案 0 :(得分:4)
setAttribute是一个javascript函数NOT jquery(你尝试将它与jquery对象一起使用)。您可以使用jquery .attr(),如:
$("#orderTable > tbody > tr :eq(" + i + ")").attr("id", "row" + (i + 1));
以下是一个例子:
var i = 1;
$("#orderTable > tbody > tr :eq(" + i + ")").attr("id", "row" + (i + 1));
&#13;
#row2 {
background: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="orderTable">
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
</table>
&#13;
答案 1 :(得分:0)
$( "#orderTable > tbody > tr :eq(" + i + ")" )
你的i在引号内,因此我将被视为一个字符,而不是数字索引。
答案 2 :(得分:0)
您的索引(i)封装在引号中,因此代码不会查找当前循环的索引。像这样格式化你的代码↓。
$("#orderTable > tbody > tr :eq(" + i + ")")
否则您的代码就可以了。