Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2013, 03:06
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

Поиск элементов по тэгу - getElementsByTagName('table')
Здравствуйте, не могу понять почему не работает поиск по элементов по тегу: getElementsByTagName('table')
Все делаю правильно, но не работает, в чем причина ?

<html>

<head>
</head>

<body>
<table width="400" valign="top" border="1">
	<tr>
		<td>111</td>
		<td>222</td>
	</tr>
	<tr>
		<td>333</td>
		<td>444</td>
	</tr>
</table>
<br>
<table width="400" valign="top" border="1">
	<tr>
		<td>555</td>
		<td>666</td>
	</tr>
	<tr>
		<td>777</td>
		<td>888</td>
	</tr>
</table>
<br>
<input type="button" value="displayNoNe" onclick="displayNoNe();">

<script type="text/javascript">
function displayNoNe() {
var elems = document.getElementsByTagName('table')[0];
for (i=0; i < elems.length; i++) {
	if (elems[i].width == 400 && elems[i].vAlign == 'top') {
		elems[i].style.display = 'none';
			break;
		}
	}
}
</script>
</body>

</html>
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2013, 05:02
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<html>

<head>
</head>

<body>
<table width="400" valign="top" border="1">
	<tr>
		<td>111</td>
		<td>222</td>
	</tr>
	<tr>
		<td>333</td>
		<td>444</td>
	</tr>
</table>
<br>
<table width="400" valign="top" border="1">
	<tr>
		<td>555</td>
		<td>666</td>
	</tr>
	<tr>
		<td>777</td>
		<td>888</td>
	</tr>
</table>
<br>
<input type="button" value="displayNoNe" onclick="displayNoNe()">

<script type="text/javascript">
function displayNoNe() {
var elems = document.getElementsByTagName('table');
  for (i=0; i < elems.length; i++) {
        if (elems[i].width == 400 && elems[i].getAttribute('valign') == 'top') {
	  elems[i].style.display = 'none';
             break;
        }
  }
}
</script>
</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2013, 06:52
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

Deff, спасибо =)
Ответить с цитированием
  #4 (permalink)  
Старый 31.01.2013, 05:06
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

Deff, скажите почему подобный метод не работает с атрибутом for в IE ?

<html>

<head>
</head>

<body>
<label for="info">INFO</label>

<script>
var elems_one = document.getElementsByTagName('label');
for (i=0; i < elems_one.length; i++) {
	if (elems_one[i].getAttribute('for') == 'info') {
		elems_one[i].style.display = 'none'; break;
	}
}
</script>
</body>

</html>

Последний раз редактировалось lamer, 31.01.2013 в 05:23.
Ответить с цитированием
  #5 (permalink)  
Старый 31.01.2013, 05:47
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

Разобрался:
Цитата:
В IE также является исключением ключевое атрибут for, для него используется свойство forHtml.
т.е. нужно определить браузер и только потом выдавать либо getAttribute('forHtml') либо getAttribute('for')

Кроссбраузерных вариантов нету ?
Ответить с цитированием
  #6 (permalink)  
Старый 31.01.2013, 05:48
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Работает в IE8-9, только что смотрел
Ответить с цитированием
  #7 (permalink)  
Старый 31.01.2013, 05:49
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

Если без определения браузера выводить сразу 2 кода это не будет плохо сказываться на чем либо ?
В консоли посмотрел вроде нет ошибок

<html>

<head>
</head>

<body>
<label for="info">INFO</label>

<script>
var elems_one = document.getElementsByTagName('label');

for (i=0; i < elems_one.length; i++) {
	if (elems_one[i].getAttribute('for') == 'info') {
		elems_one[i].style.display = 'none'; break;
	}
}

for (i=0; i < elems_one.length; i++) {
	if (elems_one[i].getAttribute('htmlFor') == 'info') {
		elems_one[i].style.display = 'none'; break;
	}
}
</script>
</body>

</html>
Ответить с цитированием
  #8 (permalink)  
Старый 31.01.2013, 05:54
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<html>
 
<head>
</head>
 
<body>
<label for="info">INFO</label>
 
<script>
var elems_one = document.getElementsByTagName('label');
for (i=0; i < elems_one.length; i++) {
    if (elems_one[i].htmlFor === 'info') {
        elems_one[i].style.display = 'none'; break;
    }
}
</script>
</body>
 
</html>


А так работает?
Ответить с цитированием
  #9 (permalink)  
Старый 31.01.2013, 05:58
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

danik.js, супер =) Спасибо работает и в IE и FF, а то я уже начал мудрить с кучей кода =)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск элементов DOM boberjs jQuery 7 14.12.2012 15:26
Поиск элементов на другой странице chudikos Events/DOM/Window 4 10.11.2012 10:12
поиск одинаковых значений элементов массива Valstor Общие вопросы Javascript 20 09.12.2011 18:56
поиск элементов в DOM Bebarr Swallow Общие вопросы Javascript 1 24.06.2011 14:57
Поиск элементов в контексте korzhik Events/DOM/Window 6 31.12.2008 11:35