Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Больше часа бьюсь:

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Куда делось свойство ячейки?
ПТО
Отправлено: 28 Ноября, 2013 - 14:43:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 395
Дата рег-ции: Янв. 2012  


Помог: 3 раз(а)




Больше часа бьюсь:

CODE (javascript):
скопировать код в буфер обмена
  1. node.innerHTML = '<table><thead><tr></tr></thead></table>';
  2.  var tds = [
  3.    {'num': 1},
  4.    {'num': 2},
  5.    {'num': 3},
  6.    {'num': 4}
  7. ];
  8. for (var i = 0; i < tds.length; i++) {
  9.    var td = document.createElement('td');
  10.    td.num = tds[i].num;
  11.    td.className = 'miniTab';
  12.    node.getElementsByTagName('table')[0].getElementsByTagName('thead')[0].getElementsByTagName('tr')[0].appendChild(td);
  13. }
  14.  
  15.  
  16. node.onclick = function(event) {
  17.   event = event || window.event;
  18.   var clickedElem = event.target || event.srcElement;
  19.   if (hasClass(clickedElem, 'miniTab')) {
  20.      chooseMiniTab(clickedElem);
  21.   }
  22.  
  23. function chooseMiniTab(td) {
  24.   console.log(td.num);
  25. }


Пишет undefined
Куда делось свойство td.num?
 
 Top
esterio
Отправлено: 28 Ноября, 2013 - 15:03:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




1. аттрибут num не по спецификации.
2. setAttribute, getAttribute, hasAttribute

В обшем реализация не грамотная. Также советую испльзовать аттрибуты data-* для сохранения пользвательсбкых данных
 
 Top
ПТО
Отправлено: 28 Ноября, 2013 - 15:19:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 395
Дата рег-ции: Янв. 2012  


Помог: 3 раз(а)




Для <div> можно указывать любые свойства: div.myValue, к примеру.
У <tr> также можно назначить любое свойство.

У <td> есть ограничения?
 
 Top
nerv
Отправлено: 28 Ноября, 2013 - 16:37:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




esterio пишет:
1. аттрибут num не по спецификации.

а где ты видишь атрибут? Я вижу свойство.

http://learn.javascript.ru/attributes-and-custom-properties

(Отредактировано автором: 28 Ноября, 2013 - 16:39:05)



-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
dXdYdZ
Отправлено: 28 Ноября, 2013 - 21:32:33
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




Вот так работает (Проверял в FF и Chrome):
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <style>
  4.     table {width:100px;height:100px;border:1px solid red;}
  5.     table td {background-color:gray;width:20px;height:20px;}
  6. </style>
  7. <script>
  8. function load()
  9.     {
  10.     var node=document.getElementById("node");
  11.     node.innerHTML = '<table><thead><tr></tr></thead></table>';
  12.      var tds = [
  13.        {'num': 1},
  14.        {'num': 2},
  15.        {'num': 3},
  16.        {'num': 4}
  17.     ];
  18.     for (var i = 0; i < tds.length; i++)
  19.        {
  20.        var td = document.createElement('td');
  21.        td.num = tds[i].num;
  22.        td.className = 'miniTab';
  23.        node.getElementsByTagName('table')[0].getElementsByTagName('thead')[0].getElementsByTagName('tr')[0].appendChild(td);
  24.        }
  25.    
  26.    
  27.    node.onclick = function(event)
  28.        {
  29.        event = event || window.event;
  30.        var clickedElem = event.target || event.srcElement;
  31.        if (clickedElem.className=='miniTab')
  32.            {
  33.            chooseMiniTab(clickedElem);
  34.            }
  35.        }
  36.    }
  37.  
  38. function chooseMiniTab(td)
  39.    {
  40.    alert(td.num);
  41.    }
  42.    
  43. window.onload=load;
  44. </script>
  45. </head>
  46. <body>
  47.     <div id='node'>11111111111111</div>
  48. </body>
  49. </html>

(Отредактировано автором: 28 Ноября, 2013 - 21:38:05)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB