Javascript Jquery对使用replaceWith添加的元素没有影响

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

我正在使用replaceWith向多个页面添加公共导航栏

在replaceWith()之后,我想将“active”类添加到一个li元素中,以使链接看起来是活动的

该代码对运行时没有影响。但是,当我在Chrome代码段中运行$(“#link1”).addClass(“active”)之后,它会按预期工作

<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>