Javascript 根据内容高度追加内容

Javascript 根据内容高度追加内容,javascript,jquery,if-statement,append,each,Javascript,Jquery,If Statement,Append,Each,所以我知道我走错了方向,但我被卡住了,所以我想你们可以帮我。我有两个容器。一种是针对小于某个高度的内容,另一种是针对大于某个高度的内容。下面是一段代码的基本草图,它无法为您提供一个基本的想法: $('#content').each(function(){ if($(this).height()>120){ $('#container2').append('the content'); }; else{ $('#container').append('the content'

所以我知道我走错了方向,但我被卡住了,所以我想你们可以帮我。我有两个容器。一种是针对小于某个高度的内容,另一种是针对大于某个高度的内容。下面是一段代码的基本草图,它无法为您提供一个基本的想法:

$('#content').each(function(){
if($(this).height()>120){
    $('#container2').append('the content');
};
else{
    $('#container').append('the content');
};
});
下面是一个JSFIDLE,它显示了此操作的结果:


编辑1:id内容包装了大量完全不同的内容,这就是为什么我想要不同高度的不同容器。因此,“内容”将是id内容中的一个特定内容,通过这种方式对每一部分内容进行评估,使其进入正确的容器。我链接的JSFIDLE不是正确的编码,它只是为了显示当正确的jquery被应用时应该发生什么

我想你只是让事情变得比你需要的更难,因为它会给你任何你想要的元素的计算高度

然后,在处理项目时,可以对要排序的元素使用.height(),如果大于某个高度,则将其附加到一个框中,如果大于某个高度,则将其附加到另一个框中

$(document).ready(function(){
    $(".content").each(function(){
        if($(this).height() > 100)
        {
            $(this).appendTo("#container");
            $(this).show();
        } else {
            $(this).appendTo("#container2");
            $(this).show();
        }
    });
});

演示:

$(“#content”)。每个(function(){
都没有意义,除非您有多个id为
content
的元素,这是严格禁止的。为什么您要用分号分隔if/else语句?这会破坏任何东西。一看您的JSFIDLE就会显示
id=“content”的多个实例
…您需要
class=“content”
,因为
id
是一个唯一的属性应该是
为每个元素
#content
添加的内容
?哦,我用分号键入是一个意外,但就#content问题而言……我有包含在id内容中的内容,js fiddle只是为了展示一个例子。我不管怎么说,我对每个事件都不太确定……那个么你们有什么建议呢?each是对的,事实是你们正在重用ID。ID应该是一个唯一的非重复元素,类用于重复和共享相同样式的元素。你们所做的应该很好,只是交换宽度(如果重要的是高度,为什么要看宽度)对于高度,去掉分号。然后将整个部分包装在一个文档中。ready函数这样它就可以在页面加载时完成它。我输入了宽度,但我的意思是输入高度。那么,如果我有上面的东西,如果这是唯一需要更改的东西,因为它只是一个打字错误,为什么它对我不起作用呢?好吧,试试看首先要做的一件事是:杀死each()函数,在一个方框上运行if函数,就好像所讨论的项未加载或不可见一样,它可能不会报告您认为它应该报告的高度。如果它报告0高度,而您认为它不应该报告,则如果未加载,它将报告0高度,解决方案如下:嘿,所以这一切都可以正常工作,但您所说的问题可能会出现,并且提供了解决方案id最终无法工作可能尝试window.load()方法,以确保在检查事情之前加载所有图像:如果这不起作用,您可能需要更新您的问题,最好有一个额外的JSFIDLE来处理出错的代码。window.load也不起作用…如果有帮助,我使用的是砌体插件