页面加载后其他元素会消失吗?

时间:2013-09-11 21:12:28

标签: javascript jquery html

我想用Jquery调用函数javascript。但是在页面加载后,所有其他元素都消失了。你可以在这里看到我的代码。我需要你的修复。

<script src='http://code.jquery.com/jquery-1.10.1.min.js'></script>
<script type="text/javascript">
$(document).ready(function() {
$("#recentpost").each(function(){
mytext = "Food";
sticky();
});
});
</script>

<script type="text/javascript">
function sticky(){
document.write("<div class='sample'>"+mytext+"</div>");
}
</script>
<div id="recentpost"></div>

<div>something here disappear after loaded page</div>

感谢您的帮助

1 个答案:

答案 0 :(得分:7)

这是因为您在加载页面后使用document.write,这会将新内容写入文档,从而有效地破坏页面。

您应该使用DOM来操作内容,因为所有HTML都已编写并解析为对象树。

例如,

function sticky(){
    document.getElementById("recentpost").textContent = mytext;
}

此外,您在ID上使用.each()很奇怪。页面上只能有一个。

所以不要这样:

$("#recentpost").each(function(){
    mytext = "Food";
    sticky();
});

你这样做:

$("#recentpost").text("Food");

或者,如果您想使用sticky()函数,则应将值传递给函数,而不是使用全局变量。

sticky("Food");

function sticky(mytext) {
    $("#recentpost").text(mytext);
}