Мне интересно, почему в следующем сценарии комментарий 1 и комментарий 2 не работают Я знаю, что мы можем получить прямой доступ к элементу по идентификатору, не передавая "форму" однако я задаю вопрос в образовательных целях Спасибо
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<title>test</title>
<script>
function ulDisply()
{
//var element = document.myform.getElementsByName("name1")[0].value;//1
//var element = document.myform.getElementsById("id1").value;//2
//var element = document.myform.elements[0].value;//3
var element = document.myform.d.value;//4
document.write("you number is "+ element +"<br>");
}
</script>
</head>
<body>
<form name = "myform">
<input type = "number" name = "n" id = "d">
<input type = "submit" onclick = "ulDisply()">
</form>
</body>
</html>Нет ничего с name='name1' и id='id1'



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Комментарий 1:
var element = document.myform.getElementsByName("name1")[0].value;
не работает, потому что:
getElementsByName определен в объекте documentКомментарий 2:
var element = document.myform.getElementsById("id1").value;
не работает, потому что:
getElementById, и она определена в объекте documentПри исправлении работает:
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<title>test</title>
<script>
function ulDisply()
{
var element = document.getElementById("d").value;//2
document.write("you number is "+ element +"<br>");
}
</script>
</head>
<body>
<form name = "myform">
<input type = "number" name = "n" id = "d">
<input type = "button" value = "Ok" onclick = "ulDisply()">
</form>
</body>
</html>@Quentin getElementsByTagName определен в HTMLElement. getElementsByName - нет. Источник: developer.mozilla.org/fr/docs/Web/API/Element/…
Ты можешь использовать:
var element = document.getElementById("d").value;
Вам нужно изменить код, чтобы он был:
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<title>test</title>
<script>
function ulDisply()
{
var element = document.getElementsByName("n")[0].value;//1
//var element = document.getElementById("d").value;//2
//var element = document.myform.elements[0].value;//3
//var element = document.myform.d.value;//4
document.write("you number is "+ element +"<br>");
}
</script>
</head>
<body>
<form name = "myform">
<input type = "number" name = "n" id = "d">
<input type = "submit" onclick = "ulDisply()">
</form>
</body>
</html>
Это будет имя, а не идентификатор.
document.myform.n.value;