Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 05.10.2017, 19:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Rasy,
очень внимательно читаете, но как гончая ... Зачем же один цикл на изменение, затем второй на объединение, если можно сразу к коллекции $.map($('[data-name]'), function(...).join(',')? И .get() здесь и нафик не нужен.
Ответить с цитированием
  #12 (permalink)  
Старый 05.10.2017, 20:02
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

laimas,
С утилитой map лучше, но автор сразу не правильно сформулировал задачу и такой вариант не кто не смог бы родить.
Ответить с цитированием
  #13 (permalink)  
Старый 05.10.2017, 20:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Янковиц,
если 10 и прочее к действительно к индексу привязано, а на выходе строка, то все намного проще, чем советуют:

var s = $.map($('[data-name]'), function(e, i) {
        return e.getAttribute('data-name') + ':' + ++i * 10
}).join(',');
Ответить с цитированием
  #14 (permalink)  
Старый 05.10.2017, 20:03
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Сообщение от Rasy Посмотреть сообщение
Янковиц,
снизу - alert(str);
У меня два блока с идентичным содержанием, как конкретизировать, из какого блока считывать data-name?
Ответить с цитированием
  #15 (permalink)  
Старый 05.10.2017, 20:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Rasy
но автор сразу не правильно сформулировал задачу
Даже так? А я значит экстрасенс?
Ответить с цитированием
  #16 (permalink)  
Старый 05.10.2017, 20:07
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Сообщение от laimas
Даже так? А я значит экстрасенс?
Я про первый пост до уточнений. Думаю не экстрасенс.
Ответить с цитированием
  #17 (permalink)  
Старый 05.10.2017, 20:11
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

И еще один момент. Вообще, это часть drag and drop системы.
Хватаю из одного блока, и перемещаю в другой. При тестировании, я динамически меняю количество div. Код предложенный в топике повесил на клик кнопки. Однако в alert выводит список с data-name элементов при загрузки страницы, но не фиксирует при динамическое изменение... Как это решить? И еще, данные берет из первого блока а не из второго...
Ответить с цитированием
  #18 (permalink)  
Старый 05.10.2017, 20:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Янковиц
У меня два блока с идентичным содержанием, как конкретизировать
Либо первый, либо последний, выбирайте какой нужен:

var s = $.map($('[data-name]').first(), function(e, i) {...
//или
var s = $.map($('[data-name]').last(), function(e, i) {...
Ответить с цитированием
  #19 (permalink)  
Старый 05.10.2017, 20:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Янковиц
Однако в alert выводит список с data-name элементов при загрузки страницы, но не фиксирует при динамическое изменение...
Для этого существует делегирование, либо данный обработчик добавляется динамически после добавления новых элементов.
Ответить с цитированием
  #20 (permalink)  
Старый 05.10.2017, 20:17
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Сообщение от laimas Посмотреть сообщение
Для этого существует делегирование, либо данный обработчик добавляется динамически после добавления новых элементов.
Делегирование это через on?
Типа такого??:
$('body').on('click', '.save-filter', function(){
		var str = $.map($('[data-name]').last(), function(e, i) {
			return e.getAttribute('data-name') + ':' + ++i * 10
		}).join(',');
		alert(str);
	});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получить значение по клику gudzik Общие вопросы Javascript 6 11.12.2012 18:22
Как получить значение переменной из callback функции? Хиросим AJAX и COMET 5 24.04.2012 09:32
Не могу получить значение атрибута DenQ jQuery 9 06.02.2011 14:33
Как получить значение аттрибута вложенного тэга по id losk Events/DOM/Window 4 21.11.2009 10:08
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00