2013-09-30 42 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); 

...它的工作原理。