Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.09.2013, 15:35
Интересующийся
Отправить личное сообщение для amt35 Посмотреть профиль Найти все сообщения от amt35
 
Регистрация: 26.09.2013
Сообщений: 14

getElementById undefined
простейшая ситуация

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>test</title>
<style>
div {text-align: center;}
</style>
</head>
<body>
<div id=u3>
<div id=g1 class=ab1>DIV17</div><br>
<div id=g2 class=vc15>DIV175</div><br>
<div id=g3 class=ab2>DIV18</div><br>
<div id=g4 class=ab3>DIV19</div><br>
<div id=g5 class=af15>DIV195</div><br>
<div id=g6 class=ab4>DIV20</div><br>
</div>
<script language="JavaScript">
var a = document.getElementsByClassName('ab1'); alert('class>'+a.length);
var b = document.getElementById('g2'); alert('id>'+b.length);
var c = document.getElementById('g1'); alert('id>'+c.length);
</script>
</body>
</html>

getElementsByClassName('ab1'); - элемент находит
document.getElementById('g1');document.getElementB yId('g2'); - выдают undefined
не понимаю почему? подскажите!

ответ:
<script language="JavaScript">
var elem1=[]; var elem2=[];
var a = document.getElementsByClassName('ab1'); alert('class>'+a.length); (=1)
var b = document.getElementById('g2'); elem1.push(b); alert('id>'+elem1.length); (=1 а не undefined)
var c = document.getElementById('g1'); elem2.push(c); alert('id>'+elem2.length); (=1 а не undefined)
</script>

Последний раз редактировалось amt35, 26.09.2013 в 16:49.
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2013, 15:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

amt35,
интересно какое количество элементов может быть в одном элементе ?
Ответить с цитированием
  #3 (permalink)  
Старый 26.09.2013, 15:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

amt35,
getElementsByClassName - s = много ну или фиг ноль
Ответить с цитированием
  #4 (permalink)  
Старый 26.09.2013, 15:49
Интересующийся
Отправить личное сообщение для amt35 Посмотреть профиль Найти все сообщения от amt35
 
Регистрация: 26.09.2013
Сообщений: 14

так проблема не в getElementsByClassName, он срабатывает.
Почему не работает getElementById ?
Ответить с цитированием
  #5 (permalink)  
Старый 26.09.2013, 15:56
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

он работает, но у него нет длинны
Ответить с цитированием
  #6 (permalink)  
Старый 26.09.2013, 16:02
Интересующийся
Отправить личное сообщение для amt35 Посмотреть профиль Найти все сообщения от amt35
 
Регистрация: 26.09.2013
Сообщений: 14

a.length в данном случае не длина а количество найденных элементов
Ответить с цитированием
  #7 (permalink)  
Старый 26.09.2013, 16:07
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

и чё это меняет?
у b и с нет такого свойства
Ответить с цитированием
  #8 (permalink)  
Старый 26.09.2013, 16:07
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от рони
интересно какое количество элементов может быть в одном элементе ?
  
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 26.09.2013, 16:28
Интересующийся
Отправить личное сообщение для amt35 Посмотреть профиль Найти все сообщения от amt35
 
Регистрация: 26.09.2013
Сообщений: 14

я разобрался
getElementsByClassName выдает массив, по этому a.length - кол-во элементов массива
getElementById выдает один элемент, по этому что бы b.length выдал кол-во элементов в один элемент а не undefined, надо сначала elem.push(b) тогда elem.length = 1 , а не undefined
Ответить с цитированием
  #10 (permalink)  
Старый 26.09.2013, 16:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от amt35
getElementById выдает один элемент, по этому что бы b.length выдал кол-во элементов в один элемент а не undefined, надо сначала elem.push(b) тогда elem.length = 1 , а не undefined
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как побить undefined ? Jnas Общие вопросы Javascript 0 30.10.2012 10:19
Google Chrome: GET http://url/url undefined (undefined) Kirumbik Opera, Safari и др. 0 07.05.2011 23:26
Чем отличается undefined от null hrundel Общие вопросы Javascript 21 01.01.2011 22:06
Операторы сравнения, null, undefined, number 0, empty string("") alexeis Общие вопросы Javascript 5 28.09.2010 21:11