2013-09-30 87 views
0

我得到了鍍鉻奇怪的行爲,(FF &即工程:))如何在chrome中將字符串拆分爲返回數組?

觀察:

function doSomething(){ 
    var status = "completed,please fix,qualified,cancel".split(','); 
    $('.searchControls .status').html(status.join(',')); 
} 

遺漏的類型錯誤:對象完成後,請修復,合格的,取消已沒有方法 '加入'

我該如何解決這個問題?難道我做錯了什麼?

+1

'1'參數是什麼? – Utkanos

+1

對那個'.html'的第二個參數有什麼作用? (但不是你的錯誤的來源) – Bergi

+1

'split(',')'then'join(',')'? –

回答

2

似乎這是一個名稱衝突的情況。有一個window.status屬性可將所有內容轉換爲字符串。觀察:

> window.status 
=> "" 
> var status = 1 
=> undefined 
> window.status 
=> "1" 
> var status = ['completed', 'cancel'] 
=> undefined 
> window.status 
=> "completed,cancel" 

解決方法:選擇另一個名稱。例如,my_status

+0

對於Nicely給出的Trace/Step +1來重現Bug,然後再解決。豎起大拇指。 – NullPointer

+0

這也是在函數內部定義的。我更新的想法可能會發生衝突 – nerkn

0

我相信window.status是一個保留字,因此會導致錯誤。要麼將「status」變量的範圍包含到「window」以外的其他位置,要麼嘗試重命名該變量,例如。

var myStatus = "completed,please fix,qualified,cancel".split(','); 
$('.searchControls .status').html(myStatus.join(','), 1); 

...它的工作原理。