Javascript Jquery对使用replaceWith添加的元素没有影响
我正在使用replaceWith向多个页面添加公共导航栏 在replaceWith()之后,我想将“active”类添加到一个li元素中,以使链接看起来是活动的 该代码对运行时没有影响。但是,当我在Chrome代码段中运行$(“#link1”).addClass(“active”)之后,它会按预期工作Javascript Jquery对使用replaceWith添加的元素没有影响,javascript,jquery,html,Javascript,Jquery,Html,我正在使用replaceWith向多个页面添加公共导航栏 在replaceWith()之后,我想将“active”类添加到一个li元素中,以使链接看起来是活动的 该代码对运行时没有影响。但是,当我在Chrome代码段中运行$(“#link1”).addClass(“active”)之后,它会按预期工作 <body> <div id='nav-placeholder'></div> <script> $.get("static/ht
<body>
<div id='nav-placeholder'></div>
<script>
$.get("static/html/navbar.html", function(data){
$("#nav-placeholder").replaceWith(data);
});
//There is an <li> element in navbar.html with id="link1"
$("#link1").addClass("active");
</script>
</body>
$.get(“static/html/navbar.html”,函数(数据){
$(“#导航占位符”)。替换为(数据);
});
//navbar.html中有一个id=“link1”的元素
$(“#link1”).addClass(“活动”);
试着这样做:
<body>
<div id='nav-placeholder'></div>
<script>
$.get("static/html/navbar.html", function(data){
$("#nav-placeholder").replaceWith(data).find("#link1").addClass("active");
});
</script>
</body>
$.get(“static/html/navbar.html”,函数(数据){
$(“#导航占位符”).replacetwith(数据).find(“#link1”).addClass(“活动”);
});
$.get(“static/html/navbar.html”,函数(数据){
$(“#导航占位符”)。替换为(数据);
$(“#link1”).addClass(“活动”);
});
尝试
$(document).ready(函数(){…您的代码…})代码>否,无效。我在addClass()之前和之后添加了console.log(),两者都已打印,但对链接没有影响。$.get()
是一个异步操作。回调中的代码在HTTP请求完成时执行。在调用回调之前,$.get()
后面的代码立即执行。如果您只是将.addClass()
行移到回调中(在.replaceWith()
之后),它可能会工作。这很有效!很简单,谢谢!仍然对链接没有影响这将有问题,因为目标元素(导航占位符)正在被替换。谢谢,这也是注释中建议的@Pointy解决方案
<div id='nav-placeholder'></div>
<script>
$.get("static/html/navbar.html", function(data){
$("#nav-placeholder").replaceWith(data);
$("#link1").addClass("active");
});
</script>