Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.08.2012, 21:24
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Проблема с document.querySelectorAll и document.getElementById
Добого дня. Имеется хтмл
<div id="allvariants">
		<div id="i1">
			текст 1
		</div>
		<div id="i2" onclick="uuu()"> 
			текст 2
		</div>
		<div id="i3">
			текст3
		</div>
		<div id="i4">
			текст 4
		</div>
	</div>


Почему не получается взять все с <div id="allvariants">.
Пробовал
var numOfButton = document.querySelectorAll('#allvariants')
function uuu() {
	alert(numOfButton[1].innerHTML)
}

Но ничего не получается, по айди тоже.
Ответить с цитированием
  #2 (permalink)  
Старый 01.08.2012, 21:32
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

PashPP,
<div id="allvariants">
		<div id="i1">
			текст 1
		</div>
		<div id="i2" onclick="uuu()"> 
			текст 2
		</div>
		<div id="i3">
			текст3
		</div>
		<div id="i4">
			текст 4
		</div>
</div>


<script type="text/javascript">
var numOfButton = document.getElementById('allvariants').querySelectorAll('div')
function uuu() {
	alert(numOfButton[1].innerHTML)
}
uuu()
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 01.08.2012, 21:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

ID ДОЛЖЕН БЫТЬ УНИКАЛЕН.
Блджад, стабильно раз в неделю это спрашивают.
Нужно в поле ответа добавить чекбокс: "Я знаю, что id - уникальный идентификатор.", и пока он не стоит не давать постить.
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 01.08.2012, 21:42
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Aetae,
Там типо вопрос криво задал - id - то уникальны

"Почему не получается взять все div из <div id="allvariants">."
Ответить с цитированием
  #5 (permalink)  
Старый 01.08.2012, 21:48
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Aetae,
Все уникально.
Deff,
Спасибо, но почему-то, и этот вариант у меня локально не работает, а вот если так:
function uuu() {
	alert(ocument.getElementById('allvariants').querySelectorAll('div')[1].innerHTML)
}
uuu()

или даже querySelectorAll('#allvariants div')[1].innerHTML)
То работает на ура. Но стоит прикрутить переменную и все. Даже не догадываюсь, что за фигня.
Ответить с цитированием
  #6 (permalink)  
Старый 01.08.2012, 21:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

PashPP,
Cогласен

<div id="allvariants">
		<div id="i1">
			текст 1
		</div>
		<div id="i2" onclick="uuu()"> 
			текст 2
		</div>
		<div id="i3">
			текст3
		</div>
		<div id="i4">
			текст 4
		</div>
</div>


<script type="text/javascript">
var numOfButton = document.querySelectorAll('#allvariants div')
function uuu() {
	alert(numOfButton[1].innerHTML)
}
uuu()
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 01.08.2012, 22:06
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Aetae
ID ДОЛЖЕН БЫТЬ УНИКАЛЕН.
ID в прошлом быть должен уникальным. А с учетом того что в браузерах появились методы querySelector/querySelectorAll можно уже хоть на сотню элементов вешать один и тот же ИД
<div id="bla"></div>
<div id="bla"></div>
<div id="bla"></div>
<div id="bla"></div>
<div id="bla"></div>
<script>
alert( document.querySelectorAll( '#bla' ).length ); // 5
</script>
да конечно, так давно решили что лучше делать ид одним уникальным, даже в спецификации упомянули о том что мол ИД он и в африке ИД, что мол он должен быть уникален и все такое.. Но по большей части это лишь по причине того что getElementById не может выбрать элементы с одним ИД.

Хотя я конечно не пропагандирую о том что ИД нужно делать не уникальным, но можно делать и не уникальным.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 01.08.2012, 22:13
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Deff,
Но почему у меня тогда на компе не работает это:
var fff=document.querySelectorAll('#allvariants div')
function uuu() {
	 
	alert(fff[1].innerHTML)
}

Но тут же заводится это:
function uuu() {
	 
	alert(document.querySelectorAll('#allvariants div')[1].innerHTML)
}

Последний раз редактировалось PashPP, 01.08.2012 в 22:17.
Ответить с цитированием
  #9 (permalink)  
Старый 01.08.2012, 22:20
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

PashPP,
Хм - я проверил в Опере Мозилле и хроме при сохранении страницы на раб стол

Вон - devote мож подскажет ?
Ответить с цитированием
  #10 (permalink)  
Старый 01.08.2012, 22:21
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

Сообщение от PashPP Посмотреть сообщение
Deff,
Но почему у меня тогда на компе неработает это:
var fff=document.querySelectorAll('#allvariants div')
function uuu() {
	 
	alert(fff[1].innerHTML)
}

Но тут же заводится это:
function uuu() {
	 
	alert(document.querySelectorAll('#allvariants div')[1].innerHTML)
}
Ну во-первых в вашем случае скорее querySelectorAll('#allvariants > div'), а во-вторых скорее всего в первом случае скрипт вызывается до того как страница загружена, потому ничго не находит, а потом уже вы вызываете фукнкцию в которой обращаетесь к пустому списку.

Во втором случае поиск осуществляется в момент обращения, когда уже всё загружено.
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47