2010-06-05 126 views
13

这个简单的JS不能设置“para”的值。我猜getElementByName不起作用。但为什么?JavaScript 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" /> 
+0

菲尔,请[代码格式正确(http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks)不要像你那样使用反引号。 – 2010-06-05 15:05:51

+0

可能重复的[在IE7中的getElementsByName](http://stackoverflow.com/questions/278719/getelementsbyname-in-ie7) – 2010-06-05 15:05:51

+0

感谢您的格式化,我明白了 – Philip007 2010-06-05 15:21:39

回答

29

这是getElementsByName。注意复数。它返回一个类似数组的NodeList元素,该属性为name

6

getElementsByName exists,它返回元素的集合。如果你打算找到只有一个:

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

编辑:a,HTML那里(没有看到之前编辑)。在HTML中没有'hi'元素,可能有一些XML格式...

+0

你们摇滚。 getElementsByName(“hi”)[0]工作得很好!谢谢。 现在我知道只有getElementById不是复数,因为id是唯一的。 – Philip007 2010-06-05 15:06:40

+2

'嗨'不是标签名称。它只是input'para的一个名字属性,我在scirpt中设置了 – Philip007 2010-06-05 15:16:58

+0

呵呵,我的错,把它和getElementsByTagName():)混淆了。 – Wrikken 2010-06-05 15:29:59

2

不是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> 
1

此外,我发现文档类型必须声明,使getelementsbyname工作。

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

-1
<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> 
+0

你能解释一下这段代码来改进你的答案并帮助未来的读者吗? – WhatsThePoint 2017-06-28 07:14:02