Javascript.RU

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

Подобраться к элементу
Обращение к элементу в стиле jQuery

Есть такая конструкция:
<table id="table">
  <tr>
     <td>
        <table>
              <tr>
                   <td>СЮДА!</td>
              </tr>
        <table>
     </td>
  <tr>
<table>


в jQuery чтобы обратиться к определенному элементу TD с таким уровнем вложенности можно так: $('#table table td:eq(0)');

А как на чистом JavaScript подобраться?

Так только до родительского элемента TD получается дойти, а как до самого TD подобраться?
var tb = document.getElementById('table').getElementsByTagName('table');
for(i=0; i<tb.length; i++){
    alert(tb[i]); // тут в цикле все элементы table, а как дальше пойти по вложенности?
}
Ответить с цитированием
  #2 (permalink)  
Старый 13.09.2010, 19:42
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

document.getElementById("#table").getElementsByTagName("table")[0].getElementsByTagName("td")[0]

Учтите только, что если промежуточных элементов не будет в документе, этот кусок кода выкинет ошибку.

Последний раз редактировалось subzey, 13.09.2010 в 19:43. Причина: Опечатка
Ответить с цитированием
  #3 (permalink)  
Старый 13.09.2010, 19:51
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

В таком случае все зависит от фантазии
<table id="table">
  <tr>
     <td>
        <table>
              <tr>
                   <td>СЮДА!</td>
              </tr>
        <table>
     </td>
  <tr>
<table>
<script>
alert(document.getElementById('table').children[0].children[0].children[0].children[0].children[0].children[0].children[0].innerHTML)
var tds = document.getElementsByTagName('td')
for(var i = 0, length = tds.length; i < length; i++) if(tds[i].parentNode.parentNode.parentNode.parentNode.tagName == 'TD') alert(tds[i].innerHTML)
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 13.09.2010, 20:32
Интересующийся
Отправить личное сообщение для сiparis Посмотреть профиль Найти все сообщения от сiparis
 
Регистрация: 13.09.2010
Сообщений: 11

Cпасибо, а как jQuery удалось так $('#table table td:eq(0)'); изящно организовать доступ к элементам?
Если не сложно объясните.
Ответить с цитированием
  #5 (permalink)  
Старый 13.09.2010, 21:00
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от сiparis
а как jQuery удалось так $('#table table td:eq(0)');
Я лично не вижу разницы с вариантом subzey.
#table - это .getElementById("#table")
table - это getElementsByTagName("table")[0]
td:eq(0) - это .getElementsByTagName("td")[0]
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как программно присвоить id элементу <div> jeel Events/DOM/Window 10 07.06.2014 14:21
Обращение к элементу внутри метода .ajax() roma86 jQuery 2 19.03.2010 20:52
Присвоение класса элементу с заранее неизвестным ID why.not? Events/DOM/Window 3 01.03.2010 03:47
обратиться к элементу формы, заданному переменной Andrej_2 Элементы интерфейса 4 15.05.2009 08:18
Добавить свой метод к элементу alekciy Events/DOM/Window 6 16.02.2009 18:29