Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   element.name не срабатывает. (https://javascript.ru/forum/dom-window/55262-element-name-ne-srabatyvaet.html)

Ramundo 20.04.2015 13:28

element.name не срабатывает.
 
С помощью функции multiStyler меняется класс "родных" элементов документа html, но на внедренный с помощью JS H4 она не действует. Хотя его атрибут name = "sp". Шо за такое?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<TITLE>JS BASICS</TITLE>
<LINK rel = "stylesheet" type = "text/css" href = "style.css" </LINK>
</HEAD>
<BODY>

<script type = "text/javascript">

 var h4 = document.createElement("H4");
h4.className = 'class1';
h4.name = 'sp';
document.body.appendChild (h4);
h4.appendChild(document.createTextNode('Header4'));

function multiStyler (name) {
	var elts = document.getElementsByName(name);

	for (var i = 0; i < elts.length; i ++) {
		if (elts[i].className == "class1") {
			elts[i].className = "class2"
		}
		else {elts[i].className = "class1"}
	}
}

window.onload = function() {
	document.getElementById("st").onclick =  function( ){multiStyler("sp");};
}

</script>

<pre>
<span name = "sp" class = "class1">aaaaa</span>
<label name = "sp" class = "class1">aaaaa</label>
<em name = "sp" class = "class1">aaaaa</em>
</pre>

<input type = "button" id = "st" value = "Change a style">


</BODY>
</HTML>

рони 20.04.2015 15:15

Ramundo,
потому что name в нормальном случае предназначено для элементов формы , но если уж очень хочется, то через атрибут
h4.setAttribute('name','sp')

Ramundo 21.04.2015 12:16

Спасибо за совет!:victory:


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