str.indexOf返回“不是函数”错误

时间:2017-04-27 01:15:59

标签: javascript

目标:我有一串代码要比较两个参数。如果其中一个参数未包含在另一个参数中,我需要执行一个脚本。

好东西:隐藏所有内容的脚本(在下面的代码中,“if(a> 0);”之后的所有内容)完美无缺。

问题:当我添加indexOf函数以尝试进行比较时,我收到一条错误说:Uncaught TypeError:str.indexOf不是函数

我尝试过:我最初尝试过str.includes函数,但通过研究发现所有浏览器都不支持该函数,并且被指示尝试执行indexOf函数。我在网上找到的所有东西似乎都说indexOf函数应该有用吗?

我的代码是:

    <script language="javascript" type="text/javascript">
     var str = [@authfield:Authentications_2_Region];
     var a = str.indexOf([@field:Location_2_Region_GL]);
     if(a > 0);
     function hide_column(column_order)
{
     var tbl = document.getElementsByTagName("table")[0];
     var table_header = tbl.getElementsByTagName('th')[column_order];
     table_header.style.display=stl;
     var rows = tbl.getElementsByTagName('tr');
     for (var row=1; row<rows.length;row++)
        {     
            var cels = rows[row].getElementsByTagName('td');
            cels[column_order].style.display=stl;
        }
}

var stl='none';
hide_column(0);
hide_column(1);
hide_column(2);
hide_column(3);
hide_column(4);
hide_column(5);
hide_column(6);
</script>

我对Javascript不满意,感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

谢谢你@Satya--他让我朝着正确的方向前进。我需要将参数转换为字符串。成功的代码是

<script language="javascript" type="text/javascript">
     var str = toString([@authfield:Authentications_2_Region]); 
     var a = str.indexOf(toString([@field:Location_2_Region_GL]));
     if(a > 0);
     function hide_column(column_order)
{
     var tbl = document.getElementsByTagName("table")[0];
     var table_header = tbl.getElementsByTagName('th')[column_order];
     table_header.style.display=stl;
     var rows = tbl.getElementsByTagName('tr');
     for (var row=1; row<rows.length;row++)
        {     
            var cels = rows[row].getElementsByTagName('td');
            cels[column_order].style.display=stl;
        }
}

var stl='none';
hide_column(0);
hide_column(1);
hide_column(2);
hide_column(3);
hide_column(4);
hide_column(5);
hide_column(6);
</script>