我尝试使用以下代码替换已加载元素的上下文:
$("#menu1").load("./templates/menu.html");
var str = $("#menu1").html();
alert(str);
str.replace("[number]", "1");
$("#menu1").replaceWith(str);
但我总是得到一个空的str
,menu1
正确加载 menu.html 内容,所以我不知道发生了什么。
答案 0 :(得分:2)
你需要在加载后测试字符串 - 你完成它的方式,它可以在负载仍在运行时运行。试试这个:
$("#menu1").load("./templates/menu.html", function() {
var str = $("#menu1").html();
alert(str);
str.replace("[number]", "1");
$("#menu1").replaceWith(str);
});
答案 1 :(得分:2)
$("#menu1").load("./templates/menu.html", function(){
//complete
var str = $("#menu1").html();
});
加载部分不是即时的,因此您在var str = $("#menu1").html();
有时间完成之前尝试应用load()
答案 2 :(得分:1)
你需要在load的回调函数中执行任务: -
例如: - )
<!DOCTYPE html>
<html>
<head>
<script data-require="jquery@*" data-semver="2.1.3" src="http://code.jquery.com/jquery-2.1.3.min.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
Hello this is rachit 1 1 1 1.
<div id="menu1"></div>
<script>
$("#menu1").load("index.html", function() {
var str = $("#menu1").html();
alert(str);
str.replace("[number]", "1");
$("#menu1").replaceWith(str);
});
</script>
</body>
</html>