Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> пробежка по элементам таблицы 
V
    Опции темы
rubanok
Дата 4.7.2008, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 21.12.2006

Репутация: нет
Всего: нет



есть table
Код

<table>
<tr><td></td></tr>
<tr><td><b onclick="showSelection(this);"></b></td></tr>
<tr><td></td></tr>
<table>


мне нужно пройти циклом по tr, но начало прохода с tr в которой находится
<b onclick="showSelection(this);"></b>

вот функция
Код

function showSelection(obj)
{
    var parent = obj.parentNode.parentNode.parentNode.parentNode;
    var parentChild = parent.getElementsByTagName('tr');
    for(var i=0; i<parentChild.length; i++)
    {
        if(parentChild[i] == obj.parentNode.parentNode) var objI = i;
    }
    for(var i=objI+1; i<parentChild.length; i++)
    {
        if(parentChild[i].className == 'none') alert(parentChild[i].className)
        else break;
    }
}


мне не очень нравится , чтобы узнать с какой строки начать проход я пробегаюсь первым циклом по всем tr, количество которых может доходить до 200

вопрос , как это можно сделать по другому, id не подходит
PM MAIL   Вверх
bars80080
Дата 4.7.2008, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



да по-моему у тебя оптимальный вариант, который разве что можно усовершенствовать:

Код

function showSelection(obj)
{
    var parent = obj.parentNode.parentNode.parentNode.parentNode;
    var parentChild = parent.getElementsByTagName('tr');
    var ln = parentChild.length;
    var brk = false;
    for(var i=0; i<ln; i++)
    {
        if(!brk && parentChild[i] != obj.parentNode.parentNode) continue;
        else { brk = true; 
            if(parentChild[i].className == 'none') alert(parentChild[i].className);
            else break;
              }
    }
}



PM MAIL WWW   Вверх
rubanok
Дата 4.7.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 21.12.2006

Репутация: нет
Всего: нет



Спасибо, второй вариан получше
PM MAIL   Вверх
babe
Дата 7.7.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.9.2007

Репутация: нет
Всего: нет



а разве вот такая строка 
Код

 var parent = obj.parentNode.parentNode.parentNode.parentNode;
 
не оставляет места для ошибки? вдруг в дальнейшем изменится html-код? разве не нужно проверить parent на то, что это именно table?
PM MAIL   Вверх
logiciel
Дата 17.7.2008, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 5.7.2006

Репутация: нет
Всего: нет



Я думаю, что при болъшом числе tr имеет смысл исполъзоватъ xml и xpath (если таблица xhtml-валидна). Тогда нужный tr ищется мгновенно. Для XML/XPath я исполъзую кроссбраузерную библиотеку zXml.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0913 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.