获取HTML的

时间:2015-03-28 13:30:40

标签: javascript jquery html

我正在使用以下函数尝试通过从上面的行引用它来获取元素的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不是函数。

有谁知道为什么?

提前致谢。麦克

3 个答案:

答案 0 :(得分:4)

setAttribute是一个javascript函数NOT jquery(你尝试将它与jquery对象一起使用)。您可以使用jquery .attr(),如:

$("#orderTable > tbody > tr :eq(" + i + ")").attr("id", "row" + (i + 1));  

以下是一个例子:

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

$( "#orderTable > tbody > tr :eq(" + i + ")" )

你的i在引号内,因此我将被视为一个字符,而不是数字索引。

答案 2 :(得分:0)

您的索引(i)封装在引号中,因此代码不会查找当前循环的索引。像这样格式化你的代码↓。

$("#orderTable > tbody > tr :eq(" + i + ")")

否则您的代码就可以了。