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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как получить объект из tr 
V
    Опции темы
markus_smile
Дата 15.8.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 1.8.2007
Где: Москва

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



Всем привет!

Help!!!!!!!!!!!

Помогите, всю голову сломал! smile 

Есть объект TR в одном из его TD есть checkbox, как получить доступ к нему?

пробовал все основные варианты, с oject.all, ChildnNodes, Children везде работает кроме FireFox!  smile 
PM MAIL   Вверх
SamDark
Дата 15.8.2007, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


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

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



markus_smile, 
А не проще ему id присвоить?


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Exception
Дата 15.8.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код
<input type="checkbox" id="someCheckBox" />
Код
var someCheckBox = document.getElementById ("someCheckBox");

PM   Вверх
markus_smile
Дата 15.8.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 1.8.2007
Где: Москва

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



суть в том что боксов много и в качестве имени стоит название массива. Что-то вроде id='id_list[]'

зачем это нужно?

это нужно для того чтобы при передаче через POST на стороне сервера сразу получить массив со значениями элементов.

прошу прощения за косяк в сторону chilNodes, всё работает это видимо я чего-то не досмотрел

код получился следующий 

Код


 for(i=0;i<em.childNodes.length;i++){ 
  if(em.childNodes[i].nodeName=='TD'){
   var td_1 = em.childNodes[i];
   for(j=0;j<td_1.childNodes.length;j++){
    if(td_1.childNodes[j].id=='list_id[]'){
     var curCheckBox = td_1.childNodes[j];
     break;
    }
   }
  }
 } 



Я бы сказал он очень громоздкий, есть ли что-то более компактное (чтобы и firefox работало)? 
PM MAIL   Вверх
12345c
Дата 15.8.2007, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

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



Для передачи по post такие имена пишут в name:
Код
<input ... name="list_id[]">
Поэтому id свободны для именований.
Если же прямо отвечать на вопрос, то проблема возникла, видимо, из-за того, что в FF пробелы и переносы строк в html воспринимаются как дополнительные ноды (текстовые). Поэтому при пробегании по childNodes[] их надо обнаруживать и пропускать.

Ещё непонятно, почему нет Ваших претензий к Опере - в ней точно так же.


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
markus_smile
Дата 15.8.2007, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 1.8.2007
Где: Москва

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



на данный момент проблем нет, приведённый код работает под всеми браузерами.

вопрос в том, есть ли более простые способы получить список подэлементов?

PM MAIL   Вверх
smartov
Дата 15.8.2007, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Код

var inputs = document.getElementsByTagName('input');
var checkboxes = new Array();

for (var i=0; i < inputs.length; i++) {
    if (inputs[i] == null)
        continue;
    if (inputs[i].type != 'checkbox')
        continue;

    checkboxes.push(inputs[i]);
}


Так получаются все чекбоксы на странице.
Можно получить только являющиеся подэлементами какого-то tr

Код

vat TR = document.getElementById('TR_ID');
var inputs = TR.getElementsByTagName('input');
var checkboxes = ...

и дальше по тексту

Это сообщение отредактировал(а) smartov - 15.8.2007, 22:41
PM MAIL   Вверх
vasac
Дата 15.8.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

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



smartov, checkbox не элемент smile
document.getElementsByTagName("input"); а дальше смотреть "type"
PM WWW   Вверх
smartov
Дата 15.8.2007, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Цитата(vasac @  15.8.2007,  16:36 Найти цитируемый пост)
checkbox не элемент 

Ой йопт  smile Как меня проглючило.
Спасибо, поправил. По инерции вписал-с smile
PM MAIL   Вверх
markus_smile
Дата 16.8.2007, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 1.8.2007
Где: Москва

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



Всем спасибо!!!  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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