0

我试图获得一个输出列表,该列表不被小于输入值的数字平均划分。例如,如果输入值为 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>
4

2 回答 2

1

getElementsByName返回一个数组,而不是一个元素。

尝试:

var number=document.getElementsByName("numberfield")[0].value;
var div=document.getElementsByName("numberfield")[0].value;

注意[0]. 您还必须进行一些修改才能使其正常工作。

演示

于 2013-09-29T07:01:31.040 回答
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返回具有指定标签名称的元素列表。

于 2013-10-01T15:31:39.680 回答