【发布时间】:2017-11-05 21:20:04
【问题描述】:
我有一个 for 循环,它为我生成了一些 divs 类 panel。
@for(comment <- event.getCommentsSorted()) {
现在我想使用 jQuery 更改每个 div,但 .each 只使用 panel 类获取前两个 divs。
$(window).on('load', function() {
$(".panel").each(function (index) {
alert(index);
$(this).height($(this)[index].scrollHeight - 12);
});
});
其他三个 div 不存在。
我想可能是因为脚本在所有divs 生成之前执行,但load 脚本应该在页面加载后执行。
我也尝试使用.ready 或生成不同数量的divs,但我只得到前两个元素并不重要。
那么为什么我只得到前两个元素,有没有办法得到所有元素?
【问题讨论】:
-
页面加载后脚本正在添加其他声音
-
我认为您的 for 循环在页面加载后运行。尝试在 for 循环中添加一些控制台消息/警报并找到执行顺序。
-
听起来像是事件委托的工作。您的元素究竟是如何添加的?
-
我将尝试在循环中添加警报。 div 直接添加到循环中。首先,我检查数据库中是否要生成 cmets(divs)。如果是,则循环遍历所有 cmets 并将它们插入到每个 .panel div 中的表单中。
-
似乎是在脚本执行之前加载了cmets...所以也许它与scrollHeight有关...
标签: jquery html css playframework