Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.12.2012, 08:40
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

как эмулировать return на два уровня в jquery
$('div').each(function () {
    $('p').each(function () {
        return false
    })
})

Нужно выйти и из внешнего цикла, как это сделать? Пробовал try...catch и создавать временную переменную. Есть способы лучше?

Или хотя бы как проверить во внешнем цикле, что внутренний цикл завершился не до конца?
Ответить с цитированием
  #2 (permalink)  
Старый 27.12.2012, 10:34
Аспирант
Отправить личное сообщение для skfyann Посмотреть профиль Найти все сообщения от skfyann
 
Регистрация: 27.12.2011
Сообщений: 90

('div').each(function () {
	var result = true;
	   $('p').each(function () {
	        result = false;
	        return false;
	    })
	if (!result) {
		return false;
	}
})
Ответить с цитированием
  #3 (permalink)  
Старый 27.12.2012, 11:46
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Это и есть способ с временной переменной
Ответить с цитированием
  #4 (permalink)  
Старый 27.12.2012, 12:08
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Сообщение от Дзен-трансгуманист Посмотреть сообщение
Совместив селекторы, переделать два цикла в один.
Это как?
Ответить с цитированием
  #5 (permalink)  
Старый 27.12.2012, 12:28
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Да что такое селекторы, я знаю, но все равно не догоняю как это сделать. Вот мой пример
$.grep(arr, function () {
    $container.find('span').each(function () {
        if (...) return true;
        return false;                   
    })
})

Что и как там совмещать?

Тут понятно, что return должен как-то возвращать из внешней функции
Ответить с цитированием
  #6 (permalink)  
Старый 27.12.2012, 12:54
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

вот твой вопрос.
$('div').each(function () {
    var ret=true;
    $('p').each(function () {
        if( ...) ret=false;
        return ret;

    })
    return ret;
})


c grep чуток всё нетак, если each это цикл то grep это фильтр. А фильтр нельзя завершить, он в любом случае переберёт все элементы

и опять же, мне кажется будет быстрее если не перебирать элементы в массиве и потом искать для каждого элементы в dom
а наоборот перебирать элементы dom и искать соответствия в массиве, так как работа с массивом намного быстрее чем с dom

Поясни пожалуйста ты массив пытаешся отфильтровать или что ?.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 27.12.2012 в 13:23.
Ответить с цитированием
  #7 (permalink)  
Старый 27.12.2012, 13:27
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Да, извиняюсь, пример нужно было точнее сформулировать. array.every не курил, но судя по всему те же яйца, только в профиль. Там же все равно колбек используется, который будет такой же внутренней функцией.

Впрочем, для своего конкретного случая придумал более изящный вариант Как удалить дубликаты из DOM? (верхний цикл)

Второй раз ухожу от проблемы выхода из вложенных функций. Надеюсь, что и потом всегда будет проносить)
Ответить с цитированием
  #8 (permalink)  
Старый 27.12.2012, 15:54
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Точно! Будем пробовать!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно подключать jQuery? Hurray jQuery 2 26.04.2012 13:03
Можно ли в jQuery селектор вставлять перменные и как? jsuse jQuery 2 04.12.2011 01:27
Как в jQuery получить доступ к фрейму или самому верхнему окну? Neokortex jQuery 7 20.12.2010 10:38
Как вставить что-то во фрейм использую jquery? InviS jQuery 12 11.10.2010 12:23
jquery поиск как на lastfm.ru tenterro jQuery 1 26.02.2010 19:11