[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: js find
andrey888
предвосхищая ремарки :
1) знаю что есть find (jquery)
2) знаю что есть querySelectorAll

просто сделал гимнастику своему мозгу.
возможно есть баги, но все что проверял - находит.

отличие - тег вместе с классом вот так ( a.link ) искать нельзя - указать нужно просто ( .link )
примеры в js снизу закоментированы , к примеру подобные запросы отрабатывают правильно

findit('#header h1 .span') // найти элемент с классом .span который лежит в теге h1 который лежит в элементе с id = header

findit('div div a) // найти тег а который лежит в диве , который в свою очередь тоже лежит в диве

findit('div table span .link') // найти эл. с классом link который лежит в теге span который лежит в table который нахожится в теге div

надеюсь хоть чуток понятно )) вдруг кто баги найдет , или просто кому нить пригодится

ссылка - http://jsfiddle.net/a5cmLcpo/1/


upd - забыл сказать . если елемент не найден в консоль выводится что он не найден, если элементов больше чем один вернется массив тогда путь к элементу указывается так findit('div table span')[1]

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
andrey888
UPD - http://jsfiddle.net/8rhdqjkL/
Сделал функцию чуть более гибкой + закоментил console.log - из за него IE не отрабатывал, кому нужна инфа в консоли - просто раскоментировать все console.log в коде. smile.gif

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
inpost
andrey888
А не проще добавить функцию console.log для IE и всё? smile.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
andrey888
inpost да почему бы и нет smile.gif . я что т даже не копался, там что то хитрое или так пустяк ?

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
inpost
andrey888
пустяки)

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
T1grOK
Цитата (andrey888 @ 18.12.2014 - 04:30)
закоментил console.log - из за него IE не отрабатывал

В IE проблемы с производительностью возникают, когда много в консоль выводишь.


_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
andrey888
inpost ок - в след. раз добавлю
T1grOK а там иной раз выводится только одна строка (название элемента - nodeName, tagName ) но он и на этом спотыкается.
Ну вообщем как и с сайтами - делаешь для всех браузеров ,а IE проверяешь отдельно. smile.gif

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Placido
Для интереса потестил производительность. jQuery справилась в 4 раза быстрее.
andrey888
Placido про скорость даже не думал . но тоже стало интересно. протестил через обычный f12 -> timeline на Chrome .
JQuery приблизительно 150 мс.
findit выше 100 мс. не уходит - приблизительно 60 мс , так что у меня JQuery проигрывает в 2 раза, что в принципе и логично, ничего стороннего ведь не нужно подгружать. ph34r.gif
может еще кто потестит , горевать не буду если у кого JQuery окажется быстрее rolleyes.gif

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
andrey888
UPD - http://jsfiddle.net/97fchLqt/1/
забрал меня js в свободное от php время )

1) теперь консоль в IE не выдает ошибок, спасибо inpostу за замечание, добавил сверху две строчки специально для "любимого" IE

2) расширил функцию, теперь можно искать и теги с классом так
findMe('#header h1 span.second a.active').style.color = 'red';

3) поменял название функции с findit на findMe biggrin.gif - это определенно самое важное

проверка на скорость -> findMe быстрее jQuery )

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.