Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Немогу найти Div (https://javascript.ru/forum/misc/9904-nemogu-najjti-div.html)

Arfey 10.06.2010 15:21

Немогу найти Div
 
while(document.getElementById('food_div[' + i + ']'))
{

divs[i] = document.getElementById('food_div[' + i + ']')
alert(divs[i].getElementById('date').value ); // ругаеться на эту часть кода =( пишет функция getElementById ненайдена.. чтото типа такого
i +=1;
}



выполняю поиск в такой структуре

<div class = "Tfood" id="Tfood">

<div id="food_div[1]"><div id= "date"></div></div>
<div id="food_div[2]"><div id= "date"></div></div>
<div id="food_div[3]"><div id= "date"></div></div>

</div>

divs[i] - это [object HTMLDivElement]

:help:

Skipp 10.06.2010 15:23

Arfey,
Хватит создавать темы одну за одной.

Arfey 10.06.2010 15:26

Цитата:

Сообщение от Skipp (Сообщение 58884)
Arfey,
Хватит создавать темы одну за одной.

так помогите же ..

Shaci 10.06.2010 15:37

для начала стоит переменную i определить

Arfey 10.06.2010 15:39

Цитата:

Сообщение от Shaci (Сообщение 58889)
для начала стоит переменную i определить

где определять? как? зачем ?

Arfey 10.06.2010 15:43

а сорри - она уже определенна ...

var divs = new Array();
var i = 1;
while(document.getElementById('food_div[' + i + ']'))
{

divs[i] = document.getElementById('food_div[' + i + ']')
alert(divs[i]);

i +=1;
}

рони 10.06.2010 15:51

id это уникальный параметр и его значение не рекомендуеться повторять в различных элементах плюс в диве не value а innerHTML

Arfey 10.06.2010 16:01

Цитата:

Сообщение от рони (Сообщение 58897)
id это уникальный параметр и его значение не рекомендуеться повторять в различных элементах плюс в диве не value а innerHTML

divs[i].getElementById is not a function
[Break on this error] alert(divs[i].getElementById('Div_Date').innerHTML);

exec 10.06.2010 16:09

Arfey, проверьте, чему равен divs[i].

Arfey 10.06.2010 16:10

Цитата:

Сообщение от exec (Сообщение 58900)
Arfey, проверьте, чему равен divs[i].

divs[i] - это [object HTMLDivElement]

Arfey 10.06.2010 16:20

люди аууу ! .. ну неужели никто не знает как в 2 циклах перебрать вложеные дивы по ID??

рони 10.06.2010 16:33

тогда можно так
alert(divs[i].firstChild.innerHTML );

или так
alert(divs[i].getElementsByTagName('div')[0].innerHTML );

Arfey 10.06.2010 17:12

Цитата:

Сообщение от рони (Сообщение 58908)
тогда можно так
alert(divs[i].firstChild.innerHTML );

или так
alert(divs[i].getElementsByTagName('div')[0].innerHTML );

спс, я еще хотел раскрутить в нутри инпаты ...
типа так

var divs = new  Array();
	var i = 1;
	while(document.getElementById('food_div[' + i + ']'))
	{
	
//	 var Date_export = document.getElementById('food_div[' + i + ']').getElementsByTagName('div')[0].innerHTML
	 
		y =0;
	 while(document.getElementById('food_div[' + i + ']').getElementById('input_food[' + y + ']')){
	 
	 
	 y +=1;
	 }

	 
	 alert(Date_export);
	
	 i +=1;
	}



опять же чтото не то с document.getElementById('food_div[' + i + ']').getElementById('input_food[' + y + ']')

micscr 10.06.2010 17:18

чтото не то с document.getElementById('food_div[' + i + ']').getElementById('

а кто тебя так научил делать?

в pure js не прокатит программировать а-ля jQuery - обход DOM значительно интереснее :) - рони, дал намек как делать.

Arfey 10.06.2010 17:21

Цитата:

Сообщение от micscr (Сообщение 58914)
чтото не то с document.getElementById('food_div[' + i + ']').getElementById('

а кто тебя так научил делать?

в pure js не прокатит программировать а-ля jQuery - обход DOM значительно интереснее :) - рони, дал намек как делать.

:help: хотябы так зделать

Arfey 10.06.2010 17:32

помогите .. :cray:

Shaci 10.06.2010 17:43

:cray: :cray: :cray:

Arfey 10.06.2010 17:46

Цитата:

Сообщение от Shaci (Сообщение 58920)
:cray: :cray: :cray:

=) капец, есть повод приколы потянуть ..

рони 10.06.2010 17:52

document.getElementById('food_div[' + i + ']').getElementsByTagName('input')[0].value

Shaci 10.06.2010 18:02

выше нос, такое ощущение, что у вас там что-то ужасное происходит:)

Arfey 10.06.2010 18:03

Цитата:

Сообщение от рони (Сообщение 58923)
document.getElementById('food_div[' + i + ']').getElementsByTagName('input')[0].value

СПАСИБА!! Получилось .. так намучался =)


var divs = new  Array();
	var i = 1;
	while(document.getElementById('food_div[' + i + ']'))
	{
	
	 var Date_export = document.getElementById('food_div[' + i + ']').getElementsByTagName('div')[0].innerHTML
	 alert(Date_export);
	y =0;
	 while(document.getElementById('food_div[' + i + ']').getElementsByTagName('input')[y]){
	 
	 alert(document.getElementById('food_div[' + i + ']').getElementsByTagName('input')[y].value);
	 
	 y +=1;
	 }
	 i +=1;
	}

Arfey 10.06.2010 18:11

еще вопрс - а если например случай .. что див внутри много
alert(document.getElementById('food_div[' + i + ']').getElementsByTagName('Div')[y].value); ... такое не получиться ..

можно ли както дополнительно еще по Id отсеевать .. в этой же строке??

Arfey 10.06.2010 18:18

Цитата:

Сообщение от Shaci (Сообщение 58924)
выше нос, такое ощущение, что у вас там что-то ужасное происходит:)

я так устал .. сидя и выискивая .. както как это .. уже 2 неделя идет если не 3

рони 10.06.2010 18:43

var food = document.getElementById('food_div[' + i + ']');//находим элемент с нужным id
var _div = food.getElementsByTagName('div');//делаем массив из всех вложенных div
for (var k=0; k<_div.length; k++)  {if(_div[k].id=="id")alert(_div[k].innerHTML )};//ищем в массиве элемент с нужным id

Arfey 10.06.2010 18:45

Цитата:

Сообщение от рони (Сообщение 58932)
var food = document.getElementById('food_div[' + i + ']');//находим элемент с нужным id
var _div = food.getElementsByTagName('div');//делаем массив из всех вложенных div
for (var k=0; i<_div.length; k++)  {if(_div[k].id=="id")alert(_div[k].innerHTML )};//ищем в массиве элемент с нужным id

всё я думаю .. этого должно с головой хватить ..на многие случаи .. спасиба=)

рони 10.06.2010 18:52

на всякий случай
var k=0; k<_div.length; k++ тут k а не i

Shaci 11.06.2010 17:38

Цитата:

я так устал .. сидя и выискивая .. както как это .. уже 2 неделя идет если не 3
Это, мягко говоря, не срок


Часовой пояс GMT +3, время: 10:30.