如何检测Javascript/JQuery对象是否具有高度?
我正在迭代DOM以更改不同元素的显示特征。我循环遍历元素,并使用JQuery.height()方法获取高度:如何检测Javascript/JQuery对象是否具有高度?,javascript,jquery,Javascript,Jquery,我正在迭代DOM以更改不同元素的显示特征。我循环遍历元素,并使用JQuery.height()方法获取高度: var myHeight = myJQueryElement.height(); 问题是,当我在Firefox中点击“comment”元素时,会出现以下错误: 错误:未捕获的异常:[异常…”无法转换JavaScript参数arg 0[nsIDOMViewCSS.getComputedStyle]“nsresult:“0x8057009(NS_Error\u XPC\u BAD\u co
var myHeight = myJQueryElement.height();
问题是,当我在Firefox中点击“comment”元素时,会出现以下错误:
错误:未捕获的异常:[异常…”无法转换JavaScript参数arg 0[nsIDOMViewCSS.getComputedStyle]“nsresult:“0x8057009(NS_Error\u XPC\u BAD\u convert\u JS)”位置:“JS frame::::第18行”数据:否]
好的,我可以检查节点类型,对吗?不,奇怪的是,当我打电话时:
var nt = myJQueryElement.nodeType;
节点类型总是“未定义”。奇怪的是,当我在Firebug中单击Javascript调试器中的元素时,它会显示一个正确的节点类型8
我只想检查元素的高度是否大于0,否则跳过它
有什么提示吗?您需要检查DOM节点,而不是jQuery对象
// ----------------------v----extract the DOM node at index 0
var nt = myJQueryElement[ 0 ].nodeType;
我可以在迭代
时重新创建您的错误,如下所示:
var body = document.getElementsByTagName('body')[0];
for (var i in body.children) {
console.log(body.children[i]);
console.log($(body.children[i]).nodeType);
}
但是当使用.each()进行迭代时,我没有发现错误
可以使用带有递归的.each()
来迭代DOM元素
$('body').children().each(function() {
console.log($(this).height());
});