js里面的split

先看一段代码:

  
    
commentId = "" ; // 先清空
$( " input[type=checkbox][id^='chk_'] " ).each( function () {
if ($( this ).attr( " checked " ) == true ) {
commentId
+= $( this ).val() + " , " ;
}
});
commentId
= commentId.substr( 0 , commentId.length - 1 );
    
  
    
commentId.toString().split( ' , ' )

当commentId只有一个值时,例如commentId=8000,那么在进行下面的split时就必须先转换成字符串类型,也就是toString()。如果不转换,就会报错“不支持此方法”。

而当commentId中包含多个值时则正常。

原因是什么呢?

因为如果只有一个值时,在进行substr操作时,由于去掉了最后一个逗号,js默认将commentId转换为int型了,所以当然就不支持split了。

就这么一个小的细节,让我纠结了好久啊!!!以前也遇到过文本框里的值是-1,但是做比较判断时,居然比1大???

原因也是因为没有事先把-1转换为整型导致的,哈哈……

因此不得不汲取教训了:在写js时,遇到变量操作,尽量手动将类型转化下

你可能感兴趣的:(split)