在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);
}
});