Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2011, 01:10
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

как обратиться к таблице из ячейки
Всем привет. Например есть таблица
<table id="table" width="300px" height="200px">
 <tr>
  <td>...</td>
  <td>...</td>
  <td>...</td>
 </tr>
 <tr>
  <td>...</td>
  <td>...</td>
  <td>...</td>
 </tr>
 <tr>
  <td>...</td>
  <td>...</td>
  <td>...</td>
 </tr>
</table>


Мне нужно что бы при кликанье по любой ячейки можно было добраться до параметров таблицы,т.е в нашем случае до width и height ну и id.

вставляю в ячейки <td> следующий код
<td onclick="alert(this.parentNode.parentNode.id);">...</td>

alert выдает пустоту, как же добраться до основного родителя из ячейки??
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2011, 01:33
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Ещё один parentNode вам поможет, ибо tbody.
Но по-хорошему надо просто сделать нужные переменные, чтоб не лезть каждый раз.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2011, 01:47
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

tbody помогло
спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 19.12.2011, 21:28
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Aetae, аха) Я сейчас тоже потихоньку перехожу к изученю объектной модели (DOM). По идее, немного странно, ведь тег <tbody> не упоминается при построении таблицы.

simple, может это пригодится Выделение строки и столбца относящихся к ячейке таблицы
<td onclick="alert(this.offsetParent.nodeName);">...</td>
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #5 (permalink)  
Старый 19.12.2011, 22:48
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

nerv_ спасибо, красивый способ, все работает
Ответить с цитированием
  #6 (permalink)  
Старый 19.12.2011, 22:53
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

У меня вот еще вопрос возник..написал функцию которая создает макет модального окна, некоторым элементам присваиваю id для дальнейшей обработки, например для resiza id="left" id="top" и.т.д. Если я создам этой функцией несколько окон то ничего страшного не будет если будут дублироваться id-ы. Так то пробовал все работает, ошибку вроде не выдает,(что удивительно ведь id должен быть уникальный) просто хотелось узнать может есть более правильный способ?
Ответить с цитированием
  #7 (permalink)  
Старый 20.12.2011, 09:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от simple
ведь id должен быть уникальный
Именно так.
Только поддерживать ту уникальность должен разработчик.
Ответить с цитированием
  #8 (permalink)  
Старый 20.12.2011, 10:47
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Вообще конечно с id это фэил в первую очередь разрабов, а уж потом начинающих прогеров: отсутствие изначально способа группировки элементов.
Уникальный идентификатор есть, а групповго нет.
Есть name, но не для любого элемента.
Есть class, но во-первых не для того он придуман, во вторых - ie.

И приходится всем юзать class=(
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 20.12.2011, 13:37
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

решил тогда отказаться от id и добираться до нужных элементов с помощью ветвлений childNodes и parentNode..Но тут тоже без сюрпризов не обходиться, вот например таблица расположенная в теги <div>:
<div>
<table id="table">// obj.childNodes[1].id выведет "table"
 <thead id="thead">// obj.childNodes[1].childNodes[1].id выведет "thead"
  <tr>
   <th>...</th>
   <th>...</th>
   <th>...</th>
  </tr>
 </thead>
 <tbody id="tbody">//obj.childNodes[1].childNodes[2].id выведет "undefined"
????  
  <tr>// а вот obj.childNodes[1].childNodes[3].id покажет "tbody"
   <td>...</td>
   <td>...</td>
   <td>...</td>
  </tr>
 </tbody>
</table>
</div>

Собственно вопрос что находиться в obj.childNodes[1].childNodes[2].id ???
Почему такой перескок через цифру ведь по идеи tbody должна быть вторым ребенком у таблице?
Ответить с цитированием
  #10 (permalink)  
Старый 20.12.2011, 13:42
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от simple
ведь по идеи tbody должна быть вторым ребенком у таблице?
По чьей идее?

<table>
 <thead> ... </thead>
*!*
 <tfoot>
  <tr>
   <td> ... </td>
  </tr>
 </tfoot>
*/!*
 <tbody> ... </tbody>
</table>

http://htmlbook.ru/html/tfoot
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
onmouseout для ячейки таблицы. Sir_Hally Events/DOM/Window 2 24.01.2012 17:21
Как узнать, присутствует ли в окне полоса прокрутки или нет? возжаждавший Элементы интерфейса 6 12.03.2010 23:00
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
как в таблице Гость (чайник) (X)HTML/CSS 8 03.11.2008 02:33