2012-04-21 87 views
4

我已存储在阵列的一些价值,我瓦纳将它们分割和瓦纳知道它包含值长度,但是当我运行功能,它是不工作使用jquery拆分数组?

<head> 

<script type="text/javascript" src="jquery.js"></script> 

<script type="text/javascript"> 

$(function(){ 


    var valData= ['songs','video','movie','games','other']; 

    var valNew=valData.split(','); 

    for(i=0;i<valNew.length;i++); 

    alert(valNew.length) 

    }) 


</script> 


</head> 

<body> 

<select id="me"></select> 
</body> 
+0

您没有使用jQuery的一点在这个代码。 – kapa 2012-04-21 09:11:08

+1

@bažmegakapa他使用$(document).ready()的简写形式,虽然它与 – 2012-04-21 09:14:28

+1

@ kmb385这个问题没有关系。是的,但是即便如此,代码中也没有DOM访问权限。 – kapa 2012-04-21 09:24:13

回答

11

拆分是用来分隔字符串分成基于某些定界符传递到分割功能的阵列。你的值已经被分割成一个数组。您的for循环语法也不正确。

拆分文档:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split

更正代码:

$(function(){ 
    var valData= "songs,video,movie,games,other"; 

    var valNew=valData.split(','); 

    for(var i=0;i<valNew.length;i++){ 
     alert(valNew.length) 
    } 
}); 

http://jsfiddle.net/tmHea/

+0

+1但是,如果您提倡数组迭代最佳实践,那么缓存“length”并将“i”声明为本地(现在是GLOBAL)会很好。 – kapa 2012-04-21 09:17:34

+0

@bažmegakapa良好的捕获,我没有看到我是全球性的,我已经更新。我同意缓存长度将是一个不错的主意,但我认为警报将帮助原始海报认识到代码正在工作。 – 2012-04-21 09:20:07

+1

如何?它会始终提醒同样的价值。 – kapa 2012-04-21 09:20:59

4

你不需要拆东西,它已经数组。和你的循环语法是错误的...

for (var i = 0; i < valData.length; i++) { 

    alert(valData[i].length); 

} 
+0

布鲁夫也如果你注意到大声笑代码使用'valData'中的字符串数组需要纠正以及因为没有它'分裂'将无法正常工作:)只是提到布鲁夫,有一个好的,快乐! – 2012-04-21 09:07:57

+0

'用于(var i = 0,len = valData.length; i kapa 2012-04-21 09:25:12

1

你好演示http://jsfiddle.net/YCarA/8/

两件事情是错误的循环

1)。

2)您的valData是数组,它应该是字符串,用于拆分以格式化为数组。

jQuery代码

$(function(){ 


    var valData = "songs,video,movie,games,other"; 


    var valNew = valData.split(','); 

    for(var i=0;i<valNew.length;i++){ 

     alert(valNew.length); 

    } 
    });​ 
+2

请让'i'本地(并缓存''长度')。 – kapa 2012-04-21 09:19:17

+0

@bažmegakapasure bruv gimme 1分钟请我用上面的代码,1分钟:)谢谢!现在完成! +1 – 2012-04-21 09:21:31

1

Kmb385是正确的。你的数据是你不能拆分成数组的,它已经分离了。

而且你的for循环有问题正确的是

for(var i=0;i<valNew.length;i++) 
     alert(valNew[i].length); 
+1

如果谈论错误/正确的循环,请使''本地(并缓存'长度')。 – kapa 2012-04-21 09:19:44

1

jQuery.each()方式:

var valData = ["songs","video","movie","games","other"]; 
$.each(valData, function(key, value) { 
    alert("Index ---> " + key + ' & length of item ---> ' + value.length); 
}); 

jsfiddle