2010-03-31 2 views
2

Пожалуйста, скажите мне, как я могу получить массив всех этих DIV конкретных таблицы, LANG = «1» с помощью JavascriptКак получить все Div внутри таблицы с помощью JavaScript

структура таблицы выглядит так:

<table> 
<tr> <td> < div id=1 lang="1" > some metter </div> </td></tr> 
<tr> <td> < div id=2 lang="2" > some metter </div> </td></tr> 
<tr> <td> < div id=3 lang="1" > some metter </div> </td></tr> 
<tr> <td> < div id=4 lang="1" > some metter </div> </td></tr> 
</table> 

ответ

5

Вы могли бы дать table уникальный идентификатор, а затем использовать функцию getElementsByTagName:

var table = document.getElementById('tableId'); 
if (table == null) return; 
var divs = table.getElementsByTagName('div'); 
for (var i = 0; i < divs.length; i++) { 
    var div = divs[i]; 
    if (div.lang == '1') { 
     alert(div); 
    } 
} 
+1

+1 за отсутствие зависимостей« cool jslib » – markcial

+0

Спасибо большое. все большинство жалоб дало правильный ответ, но я чувствовал, что ур ответ действительно очень простой и очень хороший ... –

1

Это проще, если вы используете библиотеку как Prototype, jQuery, Closure и т.д., которые предлагают почти-полный набор CSS3 selectors.

Используя прототип, это будет выглядеть следующим образом:

var table = /* ...an expression finding the table...*/; 
var divs = table.select('div[lang=1]'); 

Так, например, если вы даете таблицу id из "MyTable":

var table = $('myTable'); 
var divs = table.select('div[lang=1]'); 

Или просто

var divs = $('myTable').select('div[lang=1]'); 

Использование jQuery, если вы укажете id на свой стол, это:

var divs = $('#myTable div[lang=1]'); 

(Да, JQuery и Prototype оба используют $, но и для различных вещей.)

+0

дает мне об ошибке: table.select не является функцией (здесь таблица вар стол " –

1

Попробуйте

$('table[lang="1"]'); 

или назначить их класс позволяет сказать "divclass" и выберите их

$('.divclass[lang="1"]'); 

Это синтаксис jQuery, поскольку кто-то еще отправил в прототипе

+0

Это дает ему * все * дивы в * все * таблицы и не фильтрует по 'lang' по запросу. –

+0

@TJ Crowder Извините, что я не видел этого требования здесь. Я обновлю свой ответ – ant

3

, что случилось с ПР»простой JavaScript?

var divs = document.getElementsByTagName('table')[0].getElementsByTagName('div');

редактировать: забыли последнюю часть

var divLang = []; 
for(a in divs){ 
    ((divs[a].getAttribute('lang')) ==1)? divLang.push(divs[a]) : false; 
} 
Смежные вопросы