3 Stimmen

mootools ersetzen den Inhalt eines Divs

Ich habe den folgenden HTML-Code

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

und den folgenden JS-Code:

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

Das Problem ist, dass die Variable htmlCode etwa so lautet:

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

so, das Ergebnis, wenn ich den JS-Code ausführen ist etwas wie:

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

gibt es eine Möglichkeit, "Set" zu verwenden, so dass es die gesamte div überschreibt? oder eine andere Lösung, um etwas wie zu erhalten:

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

als das Ergebnis des JS-Skripts? Ich weiß, ich könnte nur die Variable htmlCode ändern... Ich frage mich nur, ob es eine andere Lösung für dieses.

6voto

stecb Punkte 14070

Mootools bietet eine einfache Ersetzt Methode!

//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'));

5voto

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

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

Das sollte reichen. Beispiel: http://jsfiddle.net/UvuwG/

4voto

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

0voto

Zaje Punkte 2211

Das können Sie tun

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X