Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Динамика. Почему не работает в IE? (https://javascript.ru/forum/events/3271-dinamika-pochemu-ne-rabotaet-v-ie.html)

phpmotor 02.04.2009 09:34

Динамика. Почему не работает в IE?
 
Здравствуйте!
Имеются
<form>
<INPUT TYPE="BUTTON" VALUE="Тест" onClick="TestArr();" id="TestButton">
</form>

и
<div id='arrtest'></div>

и на javascript функция:
function TestArr(){
    str="<table border='1'><tr>";
    for(i=0;i<10;i++){
        str+="<th name='myarr[]'>"+i+"</th>";
    }
    str+="</tr></table>";
    var box_data = document.getElementById("arrtest");
    box_data.innerHTML = str;
    
    x=document.getElementsByName('myarr[]');
    alert(x[0].innerHTML);
}

В Firefoxе работает, а в IE7 ругается:
"x.0.innerHTML" - есть null или не является объектом
Почему и как динамически создавать массив объектов?

Заранее СПАСИБО!

twolf 02.04.2009 14:46

getElementsByName(name) как понятно из названия ищет в теле документа все элементы с названием name. Например,
document.getElementsByName('p') - найдет все параграфы.
У Вас непонятно что ищется.

Kolyaj 02.04.2009 16:05

Цитата:

Сообщение от twolf
getElementsByName(name) как понятно из названия ищет в теле документа все элементы с названием name.

С getElementsByTagName не надо путать.

twolf 02.04.2009 17:04

Kolyaj,
точно. :) докопипастился

nakr 19.01.2013 01:40

помогите пожалуйста новечку
 
я столкнулась с той же проблемой... помогите пожалуйста:(

это мой код
// **********регистрационная форма*********

function validate()
{
	// проверяет форму на то что все поля введены
	if( document.RegistreringsForm.UserName.value == '' )
	{
		alert( "Skriv ditt namn!" );
		document.RegistreringsForm.UserName.focus() ;
		return false;
		
	}else{
		var emailValue = document.RegistreringsForm.email.value;
		// Kontrollerar att user add sitt email
		if( emailValue == '' || emailValue == 'null')
		{
			alert( "Skriv din e-mail!" );
			document.RegistreringsForm.email.focus() ;
			return false;
			
		}else{
		
			
			var checkPattern = new RegExp ('[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}');
			
			if(checkPattern.test(emailValue))
			{	
				return true; 
				
			}else{
				
				alert( "Skriv e-mail i korrekt form!" );
				document.RegistreringsForm.email.focus() ;
				return false;
		
			}  
		}
	}
}


function open_win() 
{
	if (validate())
	{
		window.open("form.html");
	}	
}





// *********************вывод предупредительного сообщения

function anotheSite()
{
   return confirm("Vill du verkligen lamna webbplatsen?");
}


//*******************увеличение картинки 

function Bildfostorning(){
	window.open(this.src.replace(/\.jpg/, "_Stort.jpg"));
}


function init()
{
	//********** выводит сообщение при переходе на др страничку
	var links = document.getElementsByTagName('a');
		
	for(var i = 0; i < links.length; i++)	
	{
		if(links[i].className == 'external')
			{
				links[i].onclick = annansida;
			}
	}
	
	
	// ************ изменить картинку
	var bild = document.getElementsByTagName('img');
	
	for(var i = 0; i < bild.length; i++)
	{
		if(bild[i].className = 'bild')
		{
			bild[i].onclick = Bildfostorning;
		}
	}
	
}

window.onload = init;


работает во всех браузерах, но не в IE


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