Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测Javascript/JQuery对象是否具有高度?_Javascript_Jquery - Fatal编程技术网

如何检测Javascript/JQuery对象是否具有高度?

如何检测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

我正在迭代DOM以更改不同元素的显示特征。我循环遍历元素,并使用JQuery.height()方法获取高度:

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