2012-04-21 122 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