//能得到值
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包装后的对象
------解决方案--------------------
不是,可以这样验证一下,alert($.prototype.isPrototypeOf($("#ouChildsTable tbody").children("tr")));