Показать сообщение отдельно
  #6 (permalink)  
Старый 13.04.2009, 14:56
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

мне так кажется, что в будущем кому-то может оказаться интересным, а каков был ответ.

не может быть двух элементов с одинаковым ID. у каждого элемента ID должен быть уникальный.
есть два варианта. 1. назначить ID таблице, сделать по ней getElementById, пройтись циклом getElementsByTagName по всем детям в поисках нужных сравнивая их свойства.

или. можно сделать поиск по имени класса.
можно воспользоваться кодом, предоставленным Dustin Diaz для получения всех элементов с заданным классом:

function getElementsByClass(searchClass,node,tag) {
    var classElements = new Array();
    if ( node == null )
        node = document;
    if ( tag == null )
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
        if ( pattern.test(els[i].className) ) {
            classElements[j] = els[i];
            j++;
        } //if
    } //for
    return classElements;
}
 
и вызов:
var elements = getElementsByClass("SpoilerBox", document, "TR");
//document для поиска элементов во всем дереве, или указание родителя с которого начинаешь искать
//TR - тег <tr> в котором у тебя стоят эти классы. можно * для любых тегов



а еще можно вот так:
if(document.getElementsByClassName) {
    //Firefox 3  C++ native implementation
    var elements = document.getElementsByClassName("SpoilerBox"); 
} else {
    //Dustin Diaz's getElementsByClass implementation
    var elements = getElementsByClass("SpoilerBox", document, "TR");
}


Это позволит сэкономить время поиска элементов для Gecko браузеров.

ну и далее пройтись циклом по массиву elements

Последний раз редактировалось AzriMan, 13.04.2009 в 14:59.
Ответить с цитированием