2017-04-27 97 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>