document.getElementsByName() keine Manipulation möglich

BlubBlub

Mitglied
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>
	<head>
		<title>Test</title>
	
	<script type="text/javascript">				
		function startDomManipulation()
		{
			alert('in function1');
			var elem = document.getElementsByName('subject');
			elem.value = 'hello world1';
		}
		
		function startDomManipulation2()
		{
			alert('in function2');
			var elem = document.getElementById('textField');
			elem.value = 'hello world2';
		}
		
		</script>
	</head>
	
	<body>
		<input type="text" id="textField" name="subject" value="vorbelegt">
		<input type="button" value="startDomManipulation()" onclick="startDomManipulation()">
		<input type="button" value="startDomManipulation2()" onclick="startDomManipulation2()">
	</body>
</html>

Hi die zweite Funktion klappt wunderbar. Die erste hingegen nicht. Leider seh ich den Fehler nicht. Ich hole mir ja das Element über den Attribut Namen und danach sollte ich doch auch den Wert manipulieren können, was jedoch nicht funktioniert. Was ist bei der ersten Funktion verkehrt?
 
Es heißt document.getElementsByName, das kommen also mehrere zurück.

Javascript:
function startDomManipulation()
{
    alert('in function1');
    var elem = document.getElementsByName('subject');
    if(elem.length)
        elem[0].value = 'hello world1';
}
 
Ist vielleicht "subject" irgendwo als geschütztes Wort gekennzeichnet?

Nimm doch einfach in der ersten Funktion auch getElementById wie du es in der anderen Funktion auch machst.
 
CPoly hatte da Recht, das liegt daran, dass wie er schon gesagt hat, mehrere Elemente zurückgegeben werden, wenn man einzeln auf die Elemente zugreift klappt es.
In diesem Sinne danke für die Hilfe
 
Zurück