Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.01.2014, 14:29
Аспирант
Отправить личное сообщение для niko42 Посмотреть профиль Найти все сообщения от niko42
 
Регистрация: 12.07.2012
Сообщений: 81

clone() изменения контента
Здравствуйте! Имеется, следующее:
$.installCatalog(Array({"name":"11111"}, {"name":"4444"}), Array({"id":"1"}));

<div class="installCatalog">
	<div class="title_category"></div>
</div>

$.installCatalog = function(category, product){

    if(product == ''){return false;}

    var c = $('.installCatalog').last();

    if(c.css('display') == 'none'){
        c.css({"display":"block"});
    }
    else{
        c = c.clone(true).insertAfter(c);
    }
    console.log(c);

    c.contentsd(category, product);

};

$.fn.contentsd = function(category, product){
    for(var key in category){
        this.find(".title_category").html("<span><a href=''>" + category[key].name + "</a></span>");
    }
};


Проблема заключается в следующем, когда клонирую блок и пытаюсь изменить контент в span, то почему-то он меняется на последнее значение: т.е. получается вот так:

<div class="installCatalog">
	<div class="title_category">
		<span>444444</span>
	</div>
</div>
<div class="installCatalog">
	<div class="title_category">
		<span>444444</span>
	</div>
</div>


А должно быть вот так:
<div class="installCatalog">
	<div class="title_category">
		<span>11111</span>
	</div>
</div>
<div class="installCatalog">
	<div class="title_category">
		<span>444444</span>
	</div>
</div>


Почему меняется контент во всех полях, если я явно указываю this

Последний раз редактировалось niko42, 28.01.2014 в 14:36.
Ответить с цитированием
  #2 (permalink)  
Старый 28.01.2014, 14:40
Аватар для jsru_
Кандидат Javascript-наук
Отправить личное сообщение для jsru_ Посмотреть профиль Найти все сообщения от jsru_
 
Регистрация: 09.04.2013
Сообщений: 149

this.find(".title_category") делает выборку по классу, у тебя и там и там одинаковые классы
Ответить с цитированием
  #3 (permalink)  
Старый 28.01.2014, 14:56
Аспирант
Отправить личное сообщение для niko42 Посмотреть профиль Найти все сообщения от niko42
 
Регистрация: 12.07.2012
Сообщений: 81

Сообщение от jsru_ Посмотреть сообщение
this.find(".title_category") делает выборку по классу, у тебя и там и там одинаковые классы
Тут я с Вами не соглашусь: $("div").find(".bigBlock") вернет все элементы с классом bigBlock, находящиеся внутри div-элементов.

Т.е. фактически, дай мне элеменыт, которые лежат внутри $(this).find(".title")

Последний раз редактировалось niko42, 28.01.2014 в 15:09.
Ответить с цитированием
  #4 (permalink)  
Старый 28.01.2014, 15:34
Аспирант
Отправить личное сообщение для niko42 Посмотреть профиль Найти все сообщения от niko42
 
Регистрация: 12.07.2012
Сообщений: 81

Нашел косяк, всё дело в html() - он заменят, а не добавляет тьфууу
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить изменения скрипта kosty@ jQuery 5 09.01.2014 19:56
Как сохранить обработчики элемента, при изменения положения элемента в dom-дереве ? Danxil Events/DOM/Window 5 08.11.2013 23:33
Отлов изменения размера элемента. Какие способы есть? danik.js Events/DOM/Window 3 05.02.2013 11:00
Перехват функции подгрузки контента для его изменения deivan Events/DOM/Window 3 19.11.2012 17:23
Яваскрипт для изменения контента sufokol Общие вопросы Javascript 5 16.06.2011 13:53