我需要一个完整性检查,因为我花了大约一个小时试图解决这个问题!
getRows().each(function() {
alert(this); // alerts '[object HTMLTableRowElement]', nothing wrong here
this.hide(); // row not hidden - wtf?
alert('hidden'); // no alert - more wtf!
});
调用hide()会轰炸出来会有什么不对?
答案 0 :(得分:7)
在.each()
this
内部是一个DOM元素(HTMLTableRowElement
),您需要将其包装起来再次成为jQuery对象(具有.hide()
方法)像这样:
$(this).hide();
如果没有这个,你会得到一个方法未定义的错误,因为HTMLTableRowElement
没有.hide()
方法:)这个错误也是警告之后没有触发的原因,因为执行已经停止关于错误。
答案 1 :(得分:2)
尝试$(this).hide()
答案 2 :(得分:2)
您没有收到第二个警报,因为上一行导致了错误。将其更改为
$(this).hide();
this
指的是所选元素,但没有hide
方法。您需要将其包装在具有hide
方法的jQuery对象中。