代码之家  ›  专栏  ›  技术社区  ›  Nick Vanderbilt

replaceWith没有替换top id的属性

  •  1
  • Nick Vanderbilt  · 技术社区  · 15 年前
    <div id='one' class='foo'>Hello</div>
    
    $('#one').replaceWith("<div id='one'>World</div>")
    

    上面的代码正在生成

    <div id='one' class='foo'>World</div>
    

    然而,所需的输出是

    <div id='one'>World</div>
    

    请注意,replaceWith正在更改DIV中的内容,而不是DIV本身的属性。

    1 回复  |  直到 15 年前
        1
  •  1
  •   MoDFoX    15 年前

    和其他对此发表评论的人一样,我无法重现这个问题。

    $(document).ready(function(){
    
      $('div').live('click', function(){
    
        $('#one').replaceWith('<div id="one">World</div>');
    
      });
    
    });​
    

    这导致

    <div id='one' class='foo'>Hello</div> 
    

    更改为:

    <div id='one'>World</div>
    

    但是,您也可以使用:

    $(document).ready(function(){
    
      $('div').live('click', function(){
    
        $('#one').removeAttr('class').html('World');
    
      });
    
    });​
    

    请注意,这些都是点击,你可以删除点击,并做你喜欢的。

    请参见这里: http://jsbin.com/adesi3/edit