Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не сработало правило Jquery
 
 автор: OLi   (13.11.2012 в 01:36)   письмо автору
 
 

    $('div.rezervation .blocks_menu div[class=^tab_]').hide();

  Ответить  
 
 автор: Sfinks   (13.11.2012 в 01:48)   письмо автору
 
   для: OLi   (13.11.2012 в 01:36)
 

Интересно, а [class=^tab_] что обозначает, как вы думаете?

  Ответить  
 
 автор: OLi   (13.11.2012 в 01:56)   письмо автору
 
   для: Sfinks   (13.11.2012 в 01:48)
 

Название класса начинается на tab_

  Ответить  
 
 автор: confirm   (13.11.2012 в 10:36)   письмо автору
 
   для: OLi   (13.11.2012 в 01:56)
 

Это не начинается с..., это не понять что. Правильная запись условия ^=

Видимо вам бесполезно что-то объяснять, вы либо не хотите понимать того, что вам говорят, либо это лень.

Вы представляете как вообще можно осуществить поиск по такому селектору - 'div.rezervation .blocks_menu div[class^=tab_]'? Такое возможно только с помощью рег. выражений, что и делает jquery. Он разбирает эту строку, справа налево, помещая результаты в массив, а затем по этому массиву производит поиск. Но это было бы не так страшно, если бы не тот факт, что вы заставляете производить по всем элементам документа!

Когда же вы уясните, что такое id. А понять это не так сложно, если привести аналогию ключа в РНР массиве. Представьте ситуацию, когда у вас есть большой массив, с вложенными массивами, и вместо того, чтобы назначить ключи для вложенных, чтобы обращаться к ним, вы производите поиск значений среди их элементов, чтобы найти индекс этого вложения, и только потом по этому индексу уже получить значение, которое надо изменить.

ID, это уникальность, и именно поэтому этот атрибут нельзя изменить средствами JS. Все остальные атрибуты можно (исключая только те, которые только для чтения по требованию безопасности). ID, это и сеть ключ для массива объектов, в котором хранятся его свойства - все остальные атрибуты объекта и их значения.

Ваше меню, уж точно вложено в некоего родителя, что видно по вашему селектору. Но вместо того, чтобы назначить ID родителю, и обращаться к нему как к ключу массива, в котором надо произвести поиск, вы ковыряетесь среди свойств, причем свойств всех элементов div страницы.

Для поиска по css-селекторам jQuery использует свой движок Sizzle, но это же самое могут и исполнять браузеры, используя метод querySelectorAll. Метод jquery .find() как раз и задействует это средство браузера, если оно поддерживается, то есть поиск по дереву элементов происходит в этом случае гораздо быстрее. И там где возможно (а в вашем случае вполне, если не подходить к именованию своих элементов так не обдуманно, как вы это делаете), применять лучше это, вместо разбора длинных селекторов.

  Ответить  
 
 автор: ЯСА   (13.11.2012 в 10:55)   письмо автору
 
   для: confirm   (13.11.2012 в 10:36)
 

>ID, это уникальность, и именно поэтому этот атрибут нельзя изменить средствами JS.

а мужики и не знали :)))

  Ответить  
 
 автор: confirm   (13.11.2012 в 10:57)   письмо автору
 
   для: ЯСА   (13.11.2012 в 10:55)
 

Да такое впечатление, что и не хотят ничего знать, а поступают по принципу "как ветер дует..."

PS. Конечно я имел ввиду не сам атрибут, а значение его. )

  Ответить  
 
 автор: ЯСА   (13.11.2012 в 11:35)   письмо автору
 
   для: confirm   (13.11.2012 в 10:57)
 

"значение id нельзя менять" - это правило работало в MSIE до версии 5 включительно

сейчас во всех браузерах значение id -- read-write (gets or sets)

вопрос "а зачем изменять?" - он, конечно, риторический
но изменять можно

  Ответить  
 
 автор: confirm   (13.11.2012 в 13:19)   письмо автору
 
   для: ЯСА   (13.11.2012 в 11:35)
 

Вах, значит я так до сих пор и живу правилами старыми, и не пытался до сих пор.
Изменяет, оказывается.)
Но вот действительно риторика - а зачем это делать, если в данном случае пропадает всякий смысл? Это как назначить свойство цвет = черный, но оказалось, что цветом является красный, то изменять не значение свойства цвет, а само свойство на нецвет.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования