2010-06-05 187 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