2017-04-27 93 views
0

目标:我有一串代码正在比较两个参数。如果其中一个参数不包含在其他参数中,我需要执行一个脚本。好的东西:隐藏所有内容的脚本(在下面的代码中,“if(a> 0);”之后的所有内容)完美地工作。str.index返回“不是函数”错误

问题:当我加入的indexOf函数尝试做比较,我得到一个错误说:遗漏的类型错误: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,任何帮助表示赞赏。

+0

尝试更改此行var str = [@authfield:Authentications_2_Region]; var str = [@authfield:Authentications_2_Region] .value();并看看它是否工作 – Satya

+0

由于您将字段传递给indexOf函数并且没有indexOf函数需要字段,请尝试@Satya答案以更正该错误 –

+0

返回“Uncaught TypeError:19.value不是函数” - 似乎是它喜欢所有的代码,直到它到达indexOf函数 - 当我改变这条线时,它在字符串的前面产生了错误,并没有达到indexOf函数的程度。 –

回答

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>