Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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.height()不';I don’我没有按预期工作_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery.height()不';I don’我没有按预期工作

Javascript jQuery.height()不';I don’我没有按预期工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个页面,我想让相邻的div具有相同的高度 我有以下功能: function setProjectsHeight() { var count = 0; $(".project").each(function() { if(count % 3 === 0) { var highest = 0; for(i=count;i<=count+2;i++) { if($("div.p

我有一个页面,我想让相邻的div具有相同的高度

我有以下功能:

function setProjectsHeight() {
    var count = 0;
    $(".project").each(function() {
        if(count % 3 === 0) { 
            var highest = 0;
            for(i=count;i<=count+2;i++) {
                if($("div.project#"+i).height() > highest) { 
                    highest = $("div.project#"+i).height(); 
                }
            }
            console.log(highest);
        }
        count++;
    });
}
函数setProjectsHeight(){
var计数=0;
$(“.project”)。每个(函数(){
如果(计数%3==0){
var最高=0;
对于(i=计数;i最高){
最高=$(“div.project#“+i).height();
}
}
console.log(最高);
}
计数++;
});
}
不知何故,高度总是零。选择器似乎是正确的(经过测试),当console.log()使用相同的选择器设置宽度时,它返回200(正确)

编辑:刚刚解决了 不知怎的,我想在css中设置“body{display:none}”,并在document.ready()的末尾将此属性设置回“block”。我这样做是因为我使用jQuery UI按钮,用户看到这些按钮从普通链接切换到UI布局

当我删除此功能时,一切都恢复正常。似乎在调用setProjectsHeight()时,body仍然是display:block。因此,没有计算出高度


谢谢你的帮助

确保有一个元素可以清除浮动/应用clearfix(如果有浮动)。如果不这样做,至少父容器没有扩展到应有的高度


还可以尝试使用
.outerHeight()
,因为这包括边框尺寸和填充

如果标签ID为
1、2、3
,请在项目后留出空间

$("div.project #"+i)

尝试从window.load()事件而不是document.ready()调用该函数


出现此问题的原因是,jQuery在所有img/object/…之前不会启动width()和height()设置。。。元素已完成加载-ready()在处理页面后立即激发,但此时某些对象可能仍在下载。

您的选择器可能出错。您应该单独使用id选择器,因为id在文档中是唯一的,并且具有最快的查找速度:

$('#'+i)
正如人们提到的,id以数字开头是无效的(但在大多数浏览器中都适用)


您的DOM中也可能有重复的ID,在这种情况下,任何东西都不会像您期望的那样工作dom ID必须是唯一的

您确定每个
.project
元素也都有相应的ID属性,因为
$(“div.project”#“+i)
选择器要求ID为0、1、2等吗?

刚刚解决了这个问题!不知怎的,我想在css中设置“body{display:none}”,并在document.ready()的末尾将此属性设置回“block”。我这样做是因为我使用jQuery UI按钮,用户看到这些按钮从普通链接切换到UI布局

当我删除此功能时,一切都恢复正常。似乎在调用setProjectsHeight()时,body仍然是display:block。因此,没有计算出高度


谢谢你的帮助

发布您正在使用的HTML怎么样?请确保在执行时呈现div。但是每个()调用中都有一个调试器来检查它。@Hersheezy:jep,这似乎就是问题所在(我在上面描述过)。他的html可能已经在做这件事了:),但现在已经修复了,谢谢您的输入!我认为问题确实与此有关。不管怎样,问题解决了。谢谢这不是问题,但无论如何,谢谢你的意见。非常感谢!我会更新id以便他们验证。是的,它肯定是正确的。这个问题与其他问题有关(见问题,现在解决)