Javascript getElementByName не работает

Этот простой js script не может установить значение "para". Я думаю, getElementByName не работает. Но почему?

<script>
function fn()  
{   
    document.getElementById("para").setAttribute("name","hi");  
    document.getElementByName("hi").setAttribute("value","my value is high");  
}  
</script>

HTML:

<input type="button" onClick="fn()" value="click me">
<input id="para" type="text" />

Ответ 1

Это getElementsByName. Обратите внимание на множественное число. Он возвращает массивный NodeList элементов с этим атрибутом name.

Ответ 2

getElementsByName существует, который возвращает коллекцию элементов. Если вы планируете найти только одно:

document.getElementsByName("hi")[0].setAttribute("value", "my value is high");

Изменить: a, HTML там (не видел, что перед редактированием). Нет элемента "hi" в HTML, возможно, в каком-то формате XML есть...

Ответ 3

not getElementByName, но getElementsByName, и он возвращает массив.

<html>
<head>
    <script language="javascript">
        function fn() {
            document.getElementById("para").setAttribute("name","hi");
            x = document.getElementsByName("hi");
            x[0].setAttribute("value","my value is high");
        }
    </script>
</head>
<body onload="fn()">
    <input type="text" id="para" />
</body>
</html>

Ответ 4

Кроме того, я обнаружил, что тип документа должен быть объявлен для работы getelementsbyname.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Ответ 5

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

<script>
$(document).ready(function(){
$("#insert_form").on('submit',function(event){
  event.preventDefault();

var d_name = $("#d_name").val();
var d_gender = $("#d_gender").val();
var d_address = $("#d_address").val();
var d_mobile = $("#d_mobile").val();
var d_specialization = $("#d_specialization").val();
var d_charge = $("#d_charge").val();
var date = $("#date").val();


// Returns successful data submission message when the entered information is stored in database.
var dataString = 'd_name1='+d_name + '&d_gender1='+d_gender + '&d_address1='+ d_address + '&d_mobile1='+ d_mobile + '&d_specialization1='+ d_specialization + '&d_charge1='+ d_charge + '&date1='+ date ;


if(dataString=='')
{
alert("Please Fill All Fields");
}
else
{
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "<?php echo base_url('predefined/create_adddoctor');?>",
data:dataString,
cache: false,
success: function(result){
alert('Doctor Added Successfully Thankyou');
window.location.href="<?php echo base_url('predefined/adddoctor');?>";
}
});
}
return false;
});
});
</script>