我试图获得一个输出列表,这些输出不是按数字小于输入值的均匀分配。例如,如果输入值为10,则列表应为10,9,8,7,6, 4,3,1。下面是我的代码,并没有给我任何输出或任何错误消息。我是新的JavaScript,我需要知道我做错了什么。
<HTML XMLns="http://www.w3.org/1999/xHTML">
<head>
<title>An example of using "for" and "while" in PHP</title>
<script type="text/javascript">
function displayResult()
{
if(text_form.numberfield.value){
var number=document.getElementsByName("numberfield").value;
var div=document.getElementsByName("numberfield").value;
while (div>0)
{
if(number%div==0 && div!=number && div!=1)
{
div--;
continue;
}
if (div == 0)
{
break;
}
document.write(div--);
document.write(",");
}
}
else
{
document.write("Enter a number");
}
}
</script>
</head>
<body>
<H1>An example of using "for" and "while" in PHP</H1>
<form name="text_form">
Please input a number: <input type="text" name="numberfield"> </label>
<input type="submit" value="Submit" onclick="displayResult()" />
</form>
<p> Result is shown as below.</p>
</body>
</HTML>
答案 0 :(得分:1)
getElementsByName
返回一个数组,而不是一个元素。
尝试:
var number=document.getElementsByName("numberfield")[0].value;
var div=document.getElementsByName("numberfield")[0].value;
注意[0]
。您还必须修改一下才能使其正常工作。
答案 1 :(得分:0)
getElementsByName
返回具有指定名称而不是单个元素的元素列表。您可以使用循环访问每个元素:
var elems=document.getElementsByName("name")
for(var i=0;i<elems.length;i++){
var elem=elems[i]
//access each element using iterator
}
此外,getElementsByTagName
返回具有指定标记名称的元素列表。