jQuery: переменная указывает на действующий DOM, а не на копию DOM только в IE - PullRequest
2 голосов
/ 29 октября 2011

У меня есть DIV, который содержит неупорядоченный список.Я хочу сделать копию этого, переформатировать его немного, а затем снова вставить его обратно в DOM.Это прекрасно работает, за исключением IE (проверено в 8 и 9), где кажется, что копия элементов кажется живой, а не копия.

Вот что происходит:

var target = $('.cities').eq(0) //grab my list

var $bigList = $(target).find('li')  // grab all the list items

alert($bigList.eq(0).html()) // this displays the first list item, no problem

$(target).html(emptyList) // I put in a bunch of placeholder HTML

alert($bigList.eq(0).html()) // EMPTY on IE, same as first alert() on all others 

Кажется, что $bigList по-прежнему указывает на DOM, а не копируется в качестве значения.Как я могу обойти это?

Ответы [ 2 ]

1 голос
/ 29 октября 2011

Вместо $(target).html(emptyList) используйте $bigList.remove();: http://jsfiddle.net/gilly3/FP5kX/

Редактировать: Вызов оба заявления:

$bigList.remove();
target.html(emptyList);

http://jsfiddle.net/gilly3/FP5kX/2/

0 голосов
/ 29 октября 2011

Попробуйте клонировать .cities, используя клон, вы получите копию купола, но не фактический элемент

var target = $('.cities').clone()[0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...