开发者

mootools replace the content of a div

开发者 https://www.devze.com 2023-02-03 07:15 出处:网络
i have the following HTML code开发者_JAVA技巧 <div id=\"myDiv\"> <p>content</p> </div>

i have the following HTML code开发者_JAVA技巧

<div id="myDiv">
   <p>content</p>
</div>

and the following JS code:

$('myDiv').set('html',htmlCode);

the problem is that the variable htmlCode is something like:

<div id="myDiv"><p>another content</p></div>

so, the result when i run the JS code is something like:

<div id="myDiv">
   <div id="myDiv">
      <p>another content</p>
   </div>
</div>

is there a way to use "set" so that it overrides the entire div? or another solution to get something like:

<div id="myDiv">
   <p>another content</p>
</div>

as the result from the JS script? i know i could just change the variable htmlCode... i just was wondering if there's another solution to this.


Mootools offers a simple replaces method!

//new tmp element that contains the new div
var tmpDiv = new Element('div',{html:'<div id="myDiv"><p>another content</p></div>'});

//new div (first child of my tmp div) replaces the old 'myDiv' (that can be grabbed from the DOM by $)
tmpDiv.getFirst().replaces($('myDiv'));


String.implement({
    replaces: function(toReplace) {
        Elements.from(this).inject(toReplace, 'after');
        toReplace.destroy();
    }
});

'<div id="a"><p>ipsum</p></div>'.replaces($('a'));

This should do. Example: http://jsfiddle.net/UvuwG/


$('myDiv').empty();
$('myDiv').adopt(Elements.from(htmlCode).getElement('p'));


You can do

$("myDiv").getParent().set("html", htmlCode);
0

精彩评论

暂无评论...
验证码 换一张
取 消