Как получить все Div внутри таблицы, используя JavaScript - PullRequest
2 голосов
/ 31 марта 2010

Скажите, пожалуйста, как я могу получить массив всех тех DIV определенной таблицы, LANG = "1" с использованием 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 >

Ответы [ 4 ]

5 голосов
/ 31 марта 2010

Вы можете присвоить 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);
    }
}
3 голосов
/ 31 марта 2010

Что случилось с простым простым JavaScript?

var divs = document.getElementsByTagName ( 'стол') [0] .getElementsByTagName ( 'DIV');

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

var divLang = []; 
for(a in divs){
  ((divs[a].getAttribute('lang')) ==1)? divLang.push(divs[a]) : false;
}
1 голос
/ 31 марта 2010

Попробуйте

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

или назначьте им класс, скажем "divclass" и выберите их

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

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

1 голос
/ 31 марта 2010

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

Используя Prototype, это выглядело бы так:

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 используют $, но для разных целей.)

...