Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.04.2011, 09:41
Новичок на форуме
Отправить личное сообщение для Svad Посмотреть профиль Найти все сообщения от Svad
 
Регистрация: 10.04.2011
Сообщений: 2

Вопрос по поводу .each
Добрый день.
Уважаемые форумчане, подскажите пожалуйста.
Есть вот такой js-код, добавляющий в DOM к каждому элементу input один span по соседству:
var switchedToSpanInput = {
	config : {
		wrapper : '.center'
	},
	link: $('<span/>')
		.addClass('to-edit')
		.text('somespan'),
	init : function(config){
		$.extend(switchedToSpanInput.config,config);
		$(switchedToSpanInput.config.wrapper)
			.find('input')
			.each(function(){switchedToSpanInput.appendLink(this);});
	},
	
	appendLink : function(switchedInput){
		$(switchedInput).parent().append(switchedToSpanInput.link);
	}
}

$(document).ready(function(){
	switchedToSpanInput.init();
}


В таком виде происходит следующее: к первому инпуту присоединяется спан, но в следующей итерации функции each он пропадает, и появляется возле второго инпута, на следующей итерации спан пропадает у второго и появляется у третьего. Таким образом спан остается только возле последнего инпута.

Если заменить .each
.each(function(){switchedToSpanInput.appendLink(this);});

на непосредственный вызов
.parent().append(switchedToSpanInput.link)

то все работает как надо.

В чем причина такого поведения?
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2011, 10:18
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

SPAN-то у Вас один.
.each() — простой цикл. Каждый раз SPAN выдёргивается со старого места и ставится на новое.

var wrapper1 = document.createElement("DIV"),
    wrapper2 = document.createElement("DIV"),
    span = document.createElement("SPAN");
wrapper1.appendChild(span);
wrapper2.appendChild(span);
alert([wrapper1.childNodes.length, wrapper2.childNodes.length]);
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2011, 10:30
Новичок на форуме
Отправить личное сообщение для Svad Посмотреть профиль Найти все сообщения от Svad
 
Регистрация: 10.04.2011
Сообщений: 2

Понял, спасибо.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ВОпРОС пО пОВОДУ АВТОРИЗАЦИИ Геворг Серверные языки и технологии 5 22.03.2011 09:51
Вопрос по поводу jqGrid Vasiliusis Библиотеки/Тулкиты/Фреймворки 2 26.11.2010 17:58
Вопрос по поводу innerHTML Blockhead Общие вопросы Javascript 5 19.05.2010 16:44
Вопрос по поводу свойства "constructor" bonifacii Общие вопросы Javascript 2 09.01.2010 20:47
Очень простой как даже по мне вопрос по поводу setTimeout & setInterval Хранитель Света Общие вопросы Javascript 5 12.07.2008 20:34