在for循环tr内获取值:
var firstTdText = tr[i].find('td').eq(0).text();
这种方法会报错,tr[i].find is not a function。是因为tr[i]得到的是原生的tr解构,因为原生js没有find()方法,所以会报错:
console.log(tr[i]);
解决方法一:
var firstTdText = $(tr[i]).find('td').eq(0).text();
把tr[i]改变成$(tr[i])变成jQ的解构:
console.log($(tr[i]));,这样才能获得td的值
解决方法二:
var firstTdText = tr.eq(i).find('td').eq(0).text();
用tr.eq(i)的方法获取tr,还是jQ方法。
示例html:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <table id="tbList"> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>3</td> <td>4</td> </tr> </table> </body> <script src="js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script> <script src="js/demo.js" type="text/javascript" charset="utf-8"></script> </html>
示例js:
$(function(){ var tr =$('#tbList').find('tr'); var len = tr.length; for(var i = 0;i < len;i++){ // console.log(tr[i]) // console.log($(tr[i])) var firstTdText = tr[i].find('td').eq(0).text();// trList[i].find is not a function // var firstTdText = $(tr[i]).find('td').eq(0).text();// 解决方法一 // var firstTdText = tr.eq(i).find('td').eq(0).text();// 解决方法二 console.log(firstTdText); } });