Javascript.RU

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

Еще раз про js-объект и dom-елемент при нём
О вреде расширения дом-объекта хорошо все написано, например http://perfectionkills.com/whats-wro...nding-the-dom/ Но кончается на самом интересном месте. Нашел типа продолжение, http://stackoverflow.com/questions/7...extend-the-dom

Цитата:

var elems = this.collection;

конец цитаты. Вопрос: как найти elem в this.collection?

Ну например прилетел по событию, или кто-то его нашел и хочет проверить, не важно. Получаем elem, находим в коллекции, берем свойства, применяем методы.

Как его там найти? Конкретный вот этот event.target
Ответить с цитированием
  #2 (permalink)  
Старый 05.11.2014, 19:48
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ну кто-нибудь покажите как вы делаете? Ни разу что ли с массивами объектов не приходилось никому дела иметь?

Мне надо просто посмотреть, я заколебался уже искать.
Ответить с цитированием
  #3 (permalink)  
Старый 05.11.2014, 20:31
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Зачем искать элемент, если event.target и так ссылка на элемент? Проверить, есть ли такой элемент в коллекции? Просто в цикле пройтись по коллекции и сравнить:
function findIndex(iterable, item) {
    var i = iterable.length;
    while (i--) {
        if (item === iterable[i]) {
            return i;
        }
    }
    return -1;
}


или так (не для старых IE)
Array.prototype.indexOf.call(iterable, item)


ну или ES6 вариант
Array.from(iterable).indexOf(item)


в Firefox еще так можно
Array.indexOf(iterable, item)

Последний раз редактировалось Octane, 05.11.2014 в 20:46.
Ответить с цитированием
  #4 (permalink)  
Старый 05.11.2014, 21:44
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Octane
Просто в цикле пройтись по коллекции и сравнить:
Ну то есть юзер нажал кнопку - просто в цикле пройтись и найти тождество? В общем это именно так все и делается? Ну тогда я спокоен. А то блин думаю как дурак индексирую эти массивы, чтобы просто в циклы не ходить. Оказывается даже лучше делаю.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Перевод на новую строку JS воспринимает как объект DOM Rig Events/DOM/Window 6 26.12.2011 20:08
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37