我试图从我的数组中获取一个字符串,以'c'开头。 使用以下jQuery-Snippet,我能够检查是否存在带有'c'的字符串:
数组(类)包含:[“aLabel”,“c2”]
c2也可以是c1,c3,c4,c5 ......
var classes = $(this).parent().attr('class').split(' ');
var found = $.inArray('c2', classes) > -1;
console.log(classes);
console.log(found);
我需要整个班级c1,c2,......
感谢您的帮助!
答案 0 :(得分:2)
这样做的一种方法就是遍历数组,测试每个元素是否匹配:
function getStringBeginningWith(arr, firstChar) {
for (var i = 0; i < arr.length; i++) {
if (arr[i].charAt(0) === firstChar) {
return arr[i];
}
}
return ""; // return whatever default value applies if no elements match
}
// then, elsewhere in your code:
var classes = $(this).parent().attr('class').split(' ');
var className = getStringBeginningWith(classes, "c");
if (className != "") {
// matching class found, so do something
}
你在评论中说过,只会有一个匹配的类,但是如果有多个函数我写完就会返回第一个。
答案 1 :(得分:1)
因为您使用的是jQuery,所以您也可以这样做:
var arr = [ "aghtrt", "acrt", "c2", "cwe4", "mklp", "c1", "hello", "world" ],
matches = new Array();
matches = $.grep(arr, function( n, i ) {
return (n.search(/^c/i) > -1) ? true : false;
});
$("p").text(matches.join(", "));
答案 2 :(得分:0)
您只需要,不需要将字符串拆分为数组
/\bc/ig.test('a c')