读书人

JQUEYR回到每一列第二个单元格的值

发布时间: 2013-01-19 11:41:36 作者: rapoo

JQUEYR返回每一列第二个单元格的值


//能得到值
function checkType() {
$("#ouChildsTable tbody tr").each(function () {
alert($(this).find("td").eq(1).html());
});
return false;

}

//不能得到值
function checkType() {
var jTBody = $("#ouChildsTable tbody").children("tr");
for (var i = 0; i < jTBody.length; i++ ) {
alert(jTBody[i].find("td").eq(1).html());
}


为什么第二种方式运行,报错 对象不支持find属性或方法。
[解决办法]
改成下面试下

alert(jTBody.eq(i).find("td").eq(1).html());

[解决办法]
function checkType() {
var jTBody = $("#ouChildsTable tbody").children("tr");
for (var i = 0; i < jTBody.length; i++ ) {
alert($(jTBody[i]).find("td").eq(1).html());
}

[解决办法]
jTBody[i].find("td").eq(1).html()

这样取值得到的是HTML DOM对象,而不是jquery包装过的对象,DOM对象没有find方法,jq的才有。

所以需要jTBody.eq(i)得到的是jq对象
[解决办法]
jTBody[i]是指第i个tr,
而$(jTBody[i])或$(this)是指第i个的tr内容,这样就可以找到。
[解决办法]
不是。。得到的jq包装后的jq对象数组

楼主认真看下api,什么方法返回什么对象,返回DOM对象使用get方法或者[]数组下标操作,其他方法返回的都是jq包装后的对象
[解决办法]
引用:
引用:jTBody[i].find("td").eq(1).html()

这样取值得到的是HTML DOM对象,而不是jquery包装过的对象,DOM对象没有find方法,jq的才有。

所以需要jTBody.eq(i)得到的是jq对象

那么 children得到的是一个 DOM对象么?
不是,可以这样验证一下,alert($.prototype.isPrototypeOf($("#ouChildsTable tbody").children("tr")));

读书人网 >JavaScript

热点推荐