JavaScript/jQuery在页面加载之前将html附加到UL元素
JavaScript/jQuery append html to an UL element before page loads
我在我的网页上有一个标题栏,设置给用户的消息。标题是由JavaScript动态创建的。我希望在UL不包含任何LI的页面中不带任何可见延迟地显示内容,然后突然填充它们。这可能吗?我想使用什么JavaScript DOM加载事件?
通常必须等待文档加载(现在是document.ready
)的原因是该元素存在于DOM中,以便您可以选择它。如果需要修改的元素已经存在于页面中,则不需要等待。
下面的例子不能工作
<script>
var foo = document.getElementById('foo');
...do more stuff with foo...
</script>
<div id="foo"></div>
它不会工作,因为当脚本执行时DOM没有加载div#foo
下面的例子将工作
<div id="foo"></div>
<script>
var foo = document.getElementById('foo');
...do more stuff with foo...
</script>
它工作是因为div#foo
已经被解析并且元素存在。
对于跨浏览器节点创建,没有特定的事件可以用JavaScript侦听。但是,如果您的脚本可以在元素已经创建的之后放置,那么您可以立即处理该元素。 一般来说,在Javascript中,当你想要某些东西平滑地显示时,即使构建某些东西并不平滑,你所要做的就是隐藏所有东西,直到它准备好。 换句话说,如果你这样做了: 然后添加一些Javascript来添加li,然后显示UL,您应该有您想要的效果。添加li的JS可以放在UL之后的任何地方,如果你把逻辑放在onReady或onLoad处理程序中,也可以放在UL之前的任何地方。<ul style="display:none"></ul>
<ul id="myList" style="display:none"></ul>
<script>
for (var i = 0; i < 5; i++) {
$("#myList").append("<li>" + i + "</li>");
}
$("#myList").show();
</script>
ie。启动隐藏的UL,向其中添加内容,然后显示它。
相关文章:
- 如何设置html元素填充的动画
- 删除对HTML元素的拖动
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 一个html元素的克隆次数太多
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 为什么我在Internet Explorer上看不到html元素
- 重新排列HTML元素的顺序并更改内容
- 使用.on动态添加jquery/js不知道的html元素
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 如何将html元素添加到tampermonkey中
- 访问html元素值javascript
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 自定义HTML元素属性未显示-Web组件
- 让HTML元素充当停止滚动的锚点
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 替换HTML元素中的字符
- 如何将html元素添加为生成的内容
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用JS加载HTML元素