Приведенный ниже код является частью replaceWith()
, которая касается замены отдельных узлов (взятых прямо из источника jQuery 1.7.1 , по модулю незначительных различий в форматировании):
replaceWith: function(value) {
if (this[0] && this[0].parentNode) {
// This deals with attached nodes...
} else {
return this.length
? this.pushStack(jQuery(jQuery.isFunction(value) ? value() : value),
"replaceWith", value)
: this;
}
}
Как видите, есть два ограничения, которые не позволяют этому коду выполнять ваши требования:
- Предоставленная функция вызывается только один раз, а не один раз для элемента в наборе,
- Предоставляемая функция вызывается в глобальном контексте (т. Е. Заменяемый элемент недоступен через ключевое слово
this
).
Итак, я боюсь, что замена отдельных узлов все еще находится в стадии разработки, и вам придется прибегнуть к второму решению, пока не будут устранены вышеуказанные ограничения.