jQuery replace не работает при замене на три элемента - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь заменить один элемент тремя другими элементами, используя jQuery replaceWith, но, похоже, он не работает.

HTML:

<span>first</span>
<span>second</span>
<span>third</span>

JS:

var spans = $("span");
spans.eq(1).replaceWith("<span></span><span></span><span></span>");

Это должно, если я напишу, в результате:

<span>first</span>
<span></span><span></span><span></span>
<span>third</span>

Но ничего не изменится ... есть мысли?

РЕДАКТИРОВАТЬ: Это подразумевалось в качестве примера, я не принимал во внимание разницу между фактическим и созданным доменом (есть ли разница? Кажется, что так ...)

var spans = $("<span>first</span><span>second</span><span>third</span>");
spans.eq(1).replaceWith($("<span></span><span></span><span></span>"));

Так что есть ещеточное отображение моего кода.

Ответы [ 2 ]

1 голос
/ 11 февраля 2011

Редактировать. Проверка http://jsfiddle.net/z9VDw/3/.Кажется, вы должны добавить отключенные DOM-узлы перед выполнением таких манипуляций.

0 голосов
/ 11 февраля 2011

Теперь, когда я вижу, что вы пытаетесь сделать, это не сработает. Домен манипуляции с фрагментами не работает в jQuery. (Кроме установки атрибутов / css.) replaceWith вставляет значение перед следующими элементами. В этом случае <span>third</span>, а затем снова возвращает this, то есть то, что было this до того, как вы позвонили replaceWith Который был <span>second</span>

...