Javascript jQuery.height()不';I don’我没有按预期工作
我有一个页面,我想让相邻的div具有相同的高度 我有以下功能: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
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以便他们验证。是的,它肯定是正确的。这个问题与其他问题有关(见问题,现在解决)