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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Методы и свойства, елементов document.getElementsByTagName 
V
    Опции темы
FelikZ
Дата 21.7.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


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

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



Как узнать кол-во, их свойства и методы, объектов полученых с помощью document.getElementsByTagName()


--------------------
user posted image
PM WWW ICQ Skype   Вверх
lexxICON
Дата 21.7.2007, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всё одно - for..in.
Код

function show_props(obj, objName) {
   var result = "";
   for (var i in obj) {
      result += objName + "." + i + " = " + obj[i] + "\n";
   }
   return result;
}

http://developer.mozilla.org/en/docs/Core_...ements:for...in

Хотя дебаггером будет сподручнее Tools
PM   Вверх
ksnk
Дата 21.7.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Это типа, прикол?
Код

var x = document.getElementsByTagName('a') 
getElementsByTagName возвращает массив, число элементов которого можно узнать с помощью свойства length x.length
Каждый элемент массива - какой-то объект, у которого опять-же можно узнать свойства, пробежашись по ним циклом for (var i in x) {alert([i,x[ i ]])} у методов typeof (x[i]).toLowerCase()=='function' // toLowerCase, возможно, лишняя перестраховка...

Это сообщение отредактировал(а) ksnk - 21.7.2007, 14:20


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alik_Kirillovich
Дата 21.7.2007, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Метод document.getElementsByTagName возвращает массив объектов с элементами.

Количество этих элементов можно узнать с помощью свойства массива length:
Код

//arElements - массив параграфов (тег <P>) на странице
var arElements = document.getElementsByTagName ("p");
//intElementsCount - их количество
var intElementsCount = arElements.length;
//Выводим их количество
alert ("На странице "+ arElements.length +" параграфов");


Свойства и методы элемента можно получить с помощью цикла for (property in object) {}:
Код

//arElements - массив параграфов (тег <P>) на странице
var arElements = document.getElementsByTagName ("p");      
//objElement1 - первый параграф
var objElement1 = arElements [0];
      
//Проходим все его свойства
for (txtPropertyName in objElement1)
  {
  //txtPropertyValue - значение текущего свойства
  var txtPropertyValue = objElement1 [txtPropertyName];
  //Выводим имя и значение текущего свойства
  document.write ("objElement1."+ txtPropertyName +" = "+ txtPropertyValue +"<br>");
  }

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


Опытный
**


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

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



Цитата(ksnk @  21.7.2007,  14:20 Найти цитируемый пост)
getElementsByTagName возвращает массив

Цитата(Alik_Kirillovich @  21.7.2007,  14:32 Найти цитируемый пост)
document.getElementsByTagName возвращает массив


Не массив.  smile 

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


Новичок



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

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



Цитата

Не массив.


Да, действительно, похоже не массив... Но количество элементов все равно можно узнать с помощью свойства length как в примере.
PM MAIL WWW   Вверх
FelikZ
Дата 21.7.2007, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


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

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



lexxICON, ухты smile про in ваще не знал!

ksnk, спс!

Кстате на последок, таки способом норм искать чото на странице? ну допусти текст ссылки?


--------------------
user posted image
PM WWW ICQ Skype   Вверх
ksnk
Дата 22.7.2007, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(Zeroglif @  21.7.2007,  15:19 Найти цитируемый пост)
Не массив.   

Угу, но выглядит как массив, ведет себя как массив... smile



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alik_Kirillovich
Дата 22.7.2007, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Угу, но выглядит как массив, ведет себя как массив... 


Выглядит может быть и как массив, но ведет себя совсем НЕ КАК МАССИВ!

У него нет ни одного метода массива, вроде sort, join, splice, pop и т.д.

Это объект со свойствами:
  • 0, 1, ..., n - элементы этого "массива"
  • length - число элементов

Больше никаких свойств и методов у него нет!
PM MAIL WWW   Вверх
Zeroglif
Дата 22.7.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Alik_Kirillovich @  22.7.2007,  16:37 Найти цитируемый пост)
Больше никаких свойств и методов у него нет!

Есть, только движок их показывать не обязан, захочет - покажет itemnamedItem...
PM MAIL WWW   Вверх
Alik_Kirillovich
Дата 22.7.2007, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Zeroglif @ 22.7.2007,  17:46)
Цитата(Alik_Kirillovich @  22.7.2007,  16:37 Найти цитируемый пост)
Больше никаких свойств и методов у него нет!

Есть, только движок их показывать не обязан, захочет - покажет itemnamedItem...


Ну, во всяком случае, это явно не свойства массива... Так что еще раз повторяю: выглядит может быть и как массив, но ведет себя совсем не как массив!
PM MAIL WWW   Вверх
lexxICON
Дата 23.7.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Короче говоря это NodeList smile
PM   Вверх
lexxICON
Дата 23.7.2007, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



FelikZ,
Цитата
Кстате на последок, таки способом норм искать чото на странице? ну допусти текст ссылки?

Можно и через перебор
Код

var a = document.body.getElementsByTagName("a"), l = a.length, i = -1;
while (i<l) {
  if (a[i+=1].firstChild.nodeValue == "something") { 
    alert(a[i].firstChild.nodeValue);
  }
}


PM   Вверх
check
Дата 23.7.2007, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Alik_Kirillovich @  22.7.2007,  16:37 Найти цитируемый пост)
Выглядит может быть и как массив, но ведет себя совсем НЕ КАК МАССИВ!
Потому что это коллекция.

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


 




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


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

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