Javascript-将数组传递给函数getElementById,而不是函数

Javascript-将数组传递给函数getElementById,而不是函数,javascript,arrays,forms,function,getelementbyid,Javascript,Arrays,Forms,Function,Getelementbyid,谷歌没完没了地搜索,绕圈子 我有一页有三张表格。 一个表单提供了对项目的高级搜索,我让javascript根据所选内容在表单的选择框上运行。选择输入是分层的,因此,如果顶层发生更改,则清除下面的选择框,然后由ajax使用一组新选项填充。我很难让clearoptions功能正常工作 因此,表单如下所示(我简化了它): 这是清除DOM中当前选项的函数。我从searchform函数传入一个ID数组,然后循环通过它们清除多个选择框。之后的下一个函数将通过ajax引入新选项,但这里不需要。我需要先让它工作

谷歌没完没了地搜索,绕圈子

我有一页有三张表格。 一个表单提供了对项目的高级搜索,我让javascript根据所选内容在表单的选择框上运行。选择输入是分层的,因此,如果顶层发生更改,则清除下面的选择框,然后由ajax使用一组新选项填充。我很难让clearoptions功能正常工作

因此,表单如下所示(我简化了它):

这是清除DOM中当前选项的函数。我从searchform函数传入一个ID数组,然后循环通过它们清除多个选择框。之后的下一个函数将通过ajax引入新选项,但这里不需要。我需要先让它工作起来

function clearoptions(ids,thisform)
{

    for (i=0; i<ids.length; i++)
    {
        // this is the line where it gives me the error:
        // TypeError: thisform.getElementById is not a function

        var tempid = thisform.getElementById(ids[i]);

        tempid.length = 0;

        var createoption=tempid.createElement('option');
        createoption.text='Include All';
        createoption.value='All';

        tempid.add(createoption,null)
    }
}
函数clearoptions(ID,此表单)
{
对于(i=0;i和)都是
文档的方法

函数搜索表单(值、更改、表单)
{
如果(更改==“顶级”)
{
//如果toplevel发生更改,请清除“中级”和“低级”框
clearoptions([“中级别”、“低级别”],表格);
返回;
}
else if(已更改==“中等级别”)
{
//如果更改了mediumlevel,请仅清除“低级别”框
clearoptions([“低级别”],表格);
返回;
}
}
函数clearoptions(ID、thisform)
{

对于(i)=0;iTIE不是一个函数。<代码> GETelEnMyBID只是一种方法。<代码>文档> QuestS选择器< /代码>。Google建议它是针对CSS的。@ TVRV8S。我只是想知道,您所搜索的是什么。也许您还没有感谢您的帮助。但是,请考虑一下:正如我注意到的,我的页面上有3种形式。3个表单中的.2个是页面上搜索结果当前页面的细化选项-一个在结果集的顶部,一个在底部。两个表单对选择框使用相同的ID:“toplevel”、“mediumlevel”和“lowlevel”。表单ID是“form1”和“form2”,因此我可以选择“form2.mediumlevel”。第三个表单是高级搜索表单,它提供了相同的选项以及更多选项,提交后,这些选项将转到单独的搜索页面。我试图做的是使函数可以采用表单ID,然后在同一组选择框ID上操作。将有三个ID为“toplevel”的元素但是我应该能够通过告诉函数我想要“form2”@TVRV8S表单ID下的子ID“toplevel”来引用我想要的元素。您不能有多个具有相同ID的元素(根据定义,全局唯一).好的,谢谢。所以没有办法在多个表单上重复使用函数吗?我想在包含的.js文件中有一组函数来操作网站上的多个表单,因为它们非常相似。@TVRV8S只有当该页面上只有1个输入具有该id时,才能使用相同的id。如果在不同的表单中有2个以上的输入,则不能使用相同的id相同的id。您需要为这些id使用类和名称。
function searchform(value, changed, theform)
{
    if(changed == "toplevel")
    {
       //clear both mediumlevel and lowlevel boxes if toplevel is changed
       clearoptions(["mediumlevel","lowlevel"],theform);
       return;
    }
    else if (changed == "mediumlevel")        
    {
        // clear just lowlevel box if mediumlevel is changed
        clearoptions(["lowlevel"],theform);
        return;
    }
}
function clearoptions(ids,thisform)
{

    for (i=0; i<ids.length; i++)
    {
        // this is the line where it gives me the error:
        // TypeError: thisform.getElementById is not a function

        var tempid = thisform.getElementById(ids[i]);

        tempid.length = 0;

        var createoption=tempid.createElement('option');
        createoption.text='Include All';
        createoption.value='All';

        tempid.add(createoption,null)
    }
}