MooTools заменить содержание div - PullRequest
3 голосов
/ 11 января 2011

у меня есть следующий HTML-код

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

и следующий JS-код:

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

проблема в том, что переменная htmlCode имеет вид:

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

Итак, результат, когда я запускаю код JS, выглядит примерно так:

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

Есть ли способ использовать «set», чтобы он переопределял весь div?или другое решение, чтобы получить что-то вроде:

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

в результате сценария JS?я знаю, что могу просто изменить переменную htmlCode ... мне просто интересно, есть ли другое решение для этого.

Ответы [ 4 ]

6 голосов
/ 11 января 2011

Mootools предлагает простой метод замены !

//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'));
5 голосов
/ 11 января 2011
String.implement({
    replaces: function(toReplace) {
        Elements.from(this).inject(toReplace, 'after');
        toReplace.destroy();
    }
});

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

Это должно сделать. Пример: http://jsfiddle.net/UvuwG/

4 голосов
/ 11 января 2011
$('myDiv').empty();
$('myDiv').adopt(Elements.from(htmlCode).getElement('p'));
0 голосов
/ 14 января 2011

Вы можете сделать

$("myDiv").getParent().set("html", htmlCode);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...