2011-09-12 57 views
3

我有這個問題,我真的不能解決。Jquery - 從分隔字符串創建一個數組,然後評估其值

我有這個字符串「B01,B20,B03,」

我想創建使用「」作爲分隔符 然後刪除最後一個元件(這將是空白的)一個jQuery數組off這個字符串然後針對 陣列的每個值發出警報。

喜歡的東西...

var theString = "B01, B20, B03, "; 

    var theArray = (theString, ','); 

    theArray = remove_last_element; (??) 

    $('theArray').each(function() { 

     alert(theArray[?].value); 

    }); 

任何提示?

謝謝!

回答

18
var theString = "B01, B20, B03, "; 

$.each(theString.split(",").slice(0,-1), function(index, item) { 
    alert(item); 
}); 

讓我知道如果您有任何問題。

+0

你爲什麼把數組放在一個jQuery對象? – Guffa

+0

@Guffa我以爲他想要一個jQuery對象的問題中的措辭。 –

+0

很好,我最終選擇了這種方式,因爲它非常小巧而且美觀!非常感謝您的幫助 !。 @Guffa,我是一個總新手我還在學習:) – matteo

1
var theString = "B01, B20, B03, ", 
    theArray = theString.split(', '); 

theArray.pop(); 
$(theArray).each(function() { 
    alert(this); 
}); 
+0

非常感謝您花時間幫助我 – matteo

2

你不需要這個jQuery。使用String.prototype.split分割字符串,然後用for循環。

var theString = "B01, B20, B03, ", 
    bits = theString.split(', ').slice(0, -1); // split the string and remove the last one 

for (var i = 0; i < bits.length; i++) { 
    alert(bits[i]); 
} 
+0

我是一個總新手:)我想我需要使用jQuery,因爲所有其他腳本使用它。無論如何,你非常樂意抽出時間幫助我。 – matteo

0

我在下面使用的唯一jquery是「修剪」值,看看它是否爲空。否則,我使用拆分和拼接(普通ol'javascript)。

var theString = "B01, B20, B03, "; 
var theArray = theString.split(','); 
for(i=0; i<theArray.length; i++) { 
    // check if any array element is empty, if so, take it out of the array 
    if ($.trim(theArray[i]) == "") 
    theArray.splice(i, 1); // remove element since it's blank 
} 

// now you can iterate over the "real" values of the array 
$.each(theArray, function(i, value) { 
    alert(value); 
}); 
+0

非常感謝您花時間幫助我。 – matteo

0
var str = "B01, B20, B03, "; 

$.each(str.split(','), function(i, val) { 
    val = $.trim(val); 
    alert(val); 
}); 
0
cleanString = function(str) { 
    return $.grep(str.split(','), function(elem) { 
     return ($.trim(elem) !== '') 
    }); 
} 

此功能將通過逗號與所有空格取出返回帶有所有分割的陣列。檢查出$.grep

用法

cleanString("B01, B20, B03, "); 

警報陣列應該是足夠簡單。這只是迭代返回數組的問題。

var arr = cleanString("B01, B20, B03, "); 
    $.each(arr, function(index, value) { 
     alert(value); 
    }); 
8

沒有「jQuery數組」這樣的東西。你使用一個Javascript數組。

您不能只是將字符串轉換爲數組,因爲它包含逗號分隔值。你必須使用的東西來解析字符串,這將是split方法在這種情況下:

var theString = "B01, B20, B03, "; 
var theArray = theString.split(", "); 

這將產生四個元素的數組,因爲有一個尾部分隔,這樣你就可以檢查這一點,刪除它:

if (theArray.length > 0 && theArray[theArray.length - 1].length == 0) { 
    theArray.pop(); 
} 

然後,您可以使用純Javascript或jQuery方法循環數組。在普通的JavaScript看起來像這樣:

for (var i = 0; i < theArray.length; i++) { 
    alert(theArray[i]); 
} 

使用jQuery的方法是這樣的:

$.each(theArray, function(index, item) { 
    alert(item); 
}); 

您也可以跳過取出物品的步驟,只是檢查在環空的項目:

var theString = "B01, B20, B03, "; 
var theArray = theString.split(", "); 
for (var i = 0; i < theArray.length; i++) { 
    if (theArray[i].length > 0) { 
    alert(theArray[i]); 
    } 
} 
相關問題