Jquery - 从分隔字符串创建一个数组,然后评估其值
我有这个问题,我真的不能解决。Jquery - 从分隔字符串创建一个数组,然后评估其值
我有这个字符串“B01,B20,B03,”
我想创建使用“”作为分隔符 然后删除最后一个元件(这将是空白的)一个jQuery数组off这个字符串然后针对 阵列的每个值发出警报。
喜欢的东西...
var theString = "B01, B20, B03, ";
var theArray = (theString, ',');
theArray = remove_last_element; (??)
$('theArray').each(function() {
alert(theArray[?].value);
});
任何提示?
谢谢!
var theString = "B01, B20, B03, ";
$.each(theString.split(",").slice(0,-1), function(index, item) {
alert(item);
});
让我知道如果您有任何问题。
var theString = "B01, B20, B03, ",
theArray = theString.split(', ');
theArray.pop();
$(theArray).each(function() {
alert(this);
});
非常感谢您花时间帮助我 – matteo
你不需要这个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]);
}
我是一个总新手:)我想我需要使用jQuery,因为所有其他脚本使用它。无论如何,你非常乐意抽出时间帮助我。 – matteo
我在下面使用的唯一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);
});
非常感谢您花时间帮助我。 – matteo
var str = "B01, B20, B03, ";
$.each(str.split(','), function(i, val) {
val = $.trim(val);
alert(val);
});
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);
});
没有“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]);
}
}
你为什么把数组放在一个jQuery对象? – Guffa
@Guffa我以为他想要一个jQuery对象的问题中的措辞。 –
很好,我最终选择了这种方式,因为它非常小巧而且美观!非常感谢您的帮助 !。 @Guffa,我是一个总新手我还在学习:) – matteo