| Это не начинается с..., это не понять что. Правильная запись условия ^=
Видимо вам бесполезно что-то объяснять, вы либо не хотите понимать того, что вам говорят, либо это лень.
Вы представляете как вообще можно осуществить поиск по такому селектору - 'div.rezervation .blocks_menu div[class^=tab_]'? Такое возможно только с помощью рег. выражений, что и делает jquery. Он разбирает эту строку, справа налево, помещая результаты в массив, а затем по этому массиву производит поиск. Но это было бы не так страшно, если бы не тот факт, что вы заставляете производить по всем элементам документа!
Когда же вы уясните, что такое id. А понять это не так сложно, если привести аналогию ключа в РНР массиве. Представьте ситуацию, когда у вас есть большой массив, с вложенными массивами, и вместо того, чтобы назначить ключи для вложенных, чтобы обращаться к ним, вы производите поиск значений среди их элементов, чтобы найти индекс этого вложения, и только потом по этому индексу уже получить значение, которое надо изменить.
ID, это уникальность, и именно поэтому этот атрибут нельзя изменить средствами JS. Все остальные атрибуты можно (исключая только те, которые только для чтения по требованию безопасности). ID, это и сеть ключ для массива объектов, в котором хранятся его свойства - все остальные атрибуты объекта и их значения.
Ваше меню, уж точно вложено в некоего родителя, что видно по вашему селектору. Но вместо того, чтобы назначить ID родителю, и обращаться к нему как к ключу массива, в котором надо произвести поиск, вы ковыряетесь среди свойств, причем свойств всех элементов div страницы.
Для поиска по css-селекторам jQuery использует свой движок Sizzle, но это же самое могут и исполнять браузеры, используя метод querySelectorAll. Метод jquery .find() как раз и задействует это средство браузера, если оно поддерживается, то есть поиск по дереву элементов происходит в этом случае гораздо быстрее. И там где возможно (а в вашем случае вполне, если не подходить к именованию своих элементов так не обдуманно, как вы это делаете), применять лучше это, вместо разбора длинных селекторов. | |