| 
 | 
| 
 
className - это атрибут? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Здрям! Кто знает как прицеплять, удолять и читать атрибуты из элементов? Я думал, setAttribute, но работает только под IE, хотя Opera и FF этод метод определён. В конкретном случае меня интересует атрибут className, дергаю его методом getAttribute('className'), получаю null в Opera & FF. Если тоже самое проделать c id, работает везде. В чем дело? className - это атрибут или нет? Вот пример кода: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Я закомментарил строку авторif ( elem.getAttribute(i) ) Если раcкомментарить, то Опера и ФФ выдает список только из двух элементов: type и id . ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.04.2007, 16:06 | 
  
  
  
   | 
||
| 
 
className - это атрибут? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  А в HTML-коде как пишется? Там ведь нет className, а есть просто class. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.04.2007, 17:15 | 
  
  
  
   | 
||
| 
 
className - это атрибут? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  className это свойство элемента, которое задается атрибутом class. <input id=i1 class=c1> тоже самое что document.getElementByID("i1").className = "c1" Атрибут же под названием className не несет смысловой нагрузки. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.04.2007, 17:29 | 
  
  
  
   | 
||
| 
 
className - это атрибут? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Значит атрибут и свойство - различные понятия? Ой, ой, попробовал так: Код: plaintext Какой смысл в атрибутах, если то же самое есть в свойствах? попробую сформулировать: свойство "className" есть в IE, Op, FF. атрибут "class" - в Op && FF. Вот здесь и неясно: как добраться к свойству в Опере и ФФ, т.е. я хочу сказать, есть ли метод доступа к свойствам, аналогичный getAttribute('atrName')? Дело в том, что названия свойства я могу и незнать, т.е. atrName - это переменная, поэтому вариант document.getElementByID(idName).propertyName не катит. И вообще, непонятно наличие свойства и атрибута в объекте. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.04.2007, 20:32 | 
  
  
  
   | 
||
| 
 
className - это атрибут? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mrJustКакой смысл в атрибутах, если то же самое есть в свойствах?Потому что сначала были только теги и их атрибуты, а потом появились скрипты и объектная модель документа для них. Почему названия свойств объектов отличаются от названий атрибутов тегов - вопрос к разработчикам стандарта. Кроме того, в тег можно навалить кучу собственных атрибутов, но они будут проигнорированы, потому что в спецификации html их нет. Чтобы добро не пропадало, их стали просто складывать в коллекцию атрибутов. mrJustзаработало в ФФ и Опере, а в ИЕ перестало (((((Просто ie складывает в эту коллекцию не все атрибуты, имеющие смысл. Правильно для всех броузеров будет elem.className. mrJustпопробую сформулировать: свойство "className" есть в IE, Op, FF. атрибут "class" - в Op && FF.Мимо. И атрибут class и свойство className определены в спецификации html и по идее поддеживаются всеми броузерами. Как поддерживаются - тонкости конкретного броузера. mrJustДело в том, что названия свойства я могу и незнатьДолжен знать. Каждое свойство отвечает за какой-то конкретный аспект поведения элемента, как можно не знать заранее, что произойдет с его внешним видом при каком-то действии? Или все наоборот происходит - скрипты программируют тебя?)))) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.04.2007, 21:43 | 
  
  
  
   | 
||
| 
 
className - это атрибут? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Спасибо, чуть прояснилось. По поводу атрибутов и свойств - вместо "getAttribute()" попробовал "getAttributeNode()". Заработало!!! Ньдя, метод "getAttributeNode()" возвращает объект атрибута, а у этого объекта есть поля (имя, значение...). Вот, только теперь неясно зачем нужен метод getAttribute(). т.е. в каких случаях его использовать. Теперь проблема в следующем: Если задаю атрибут (методом currentElement.setAttribute(name, value)), к текущему объекту действительно добавляется новая пара - названиеАтр : значениеАтр. Но если менять значениеАтр(в конкретном примере меняю атрибут 'class'), результата никакого не видать! Бут-то я так, для прикола парюсь с домом. Как будто броузер издевается - ну поменял, теперь радуйся, а я все равно сделаю как хочу. Я понимаю, это абсурд и кривые руки, но обидно. Antonariy mrJustДело в том, что названия свойства я могу и незнатьДолжен знать. Каждое свойство отвечает за какой-то конкретный аспект поведения элемента, как можно не знать заранее, что произойдет с его внешним видом при каком-то действии? Или все наоборот происходит - скрипты программируют тебя?)))) Да, действительно знаю, но я меняю не один атрибут, а несколько (class, title, может что еще), поэтому целесообразно запихать все это в функцию. Надеюсь, пока не запутал. В общем, мне нужно сохронить свойство в объект, чтобы потом его восстановить. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 03:11 | 
  
  
  
   | 
||
| 
 
className - это атрибут? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Все понятно. Тебе придется забыть об атрибутах, потому что это отдельная коллекция значений и их названий, просто хранилище. Изменение значения атрибута не приведет к изменению значения свойства, внешний вид элемента не изменится. Если хочешь написать какую-то универсальную процедуру, то тебе придется генерировать скрипт типа  Код: plaintext ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 10:23 | 
  
  
  
   | 
||
| 
 
className - это атрибут? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mrJustНо если менять значениеАтр(в конкретном примере меняю атрибут 'class'), результата никакого не видать!чтобы видеть изменения меняй свойства, а не атрибуты. Добраться до свойства по имени попробуй так: elem["className"]="zz"; ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.04.2007, 11:35 | 
  
  
  
   | 
||
| 
 
className - это атрибут? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  это я зря, т.к. не пашет только в IE mrJustНо если менять значениеАтр(в конкретном примере меняю атрибут 'class'), результата никакого не видать! Я наконец, таки догнал! массив атрибутов ('attributes') - в IE массив всех свойств и атрибутов для элемента. В IE изменение элементов в этом массиве (добавление новых атрибутов, изменение существующих) не ведёт к видимому изменению элемента. Т.е. если изменим атрибут (например "слass", а он там есть)в IE - это никак не повлияет на его отображение (насчет внутреннего поведения элемента - не знаю). Таким образом, вообще непонятно наличие такага понятия как атрибут для модели IE. А вот в Opera и FireFox массив ('attributes') очень кстати. Он содержит только атрибуты (но не свойства) текущего элемента. Атрибут рассматривается как объект(как и в IE), но свойств (полей) у него намного больше чем в IE. И изменение значения атрибута ведёт к изменению отображения элемента на экране. Таким образом, В IE нужно менять свойство, а в Opera FF можно и свойство и атрибут. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.04.2007, 09:18 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=22&fpage=384&tid=1458443]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    38ms | 
get topic data:  | 
    9ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    41ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 13ms | 
| total: | 133ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...