更新:这是工作代码,感谢King King的投入,感谢它。
这可能是个问题,但我很难做到。我有一个字符串,如下所示:
dataType=type:Cricket+type:Football+type:Hockey
现在我要做的是提取“板球”,“足球”和“曲棍球”,然后运行for循环选择我页面上的相应复选框。我已经实现了问题的第二部分,即检查复选框,但现在我需要动态地完成它,我必须首先提取上述值。我尝试了以下代码,但它没有用。
我在这里有一个小提琴http://jsfiddle.net/q2WBG/6/
<div id="here"></div>
var str = "dataType=type:Cricket+type:Football+type:Hockey";
var valNew = str.split('type:');
for (var i = 0; i < valNew.length; i++){
$('#here').html(valNew);
}
我在小提琴中评论了这部分代码,你能提供修复吗?
答案 0 :(得分:0)
var valNew = str1.split('type:');
//we know that the 'type' can never be before type: so we start at 1
for (var i = 1; i < valNew.length; i++) {
//if there is a plus, then we remove it, otherwise it'll just skip the replace
alert(valNew[i].replace('+', ''));
}
答案 1 :(得分:0)
<强> DEMO 强> 试试这个
var str = "dataType=type:Cricket+type:Football+type:Hockey";
var valNew = str.split(/[=+]type:/);
for (var i = 1; i < valNew.length; i++) {
$('#' + valNew[i]).attr("checked", true)
}
答案 2 :(得分:0)
这是你固定的小提琴:http://jsfiddle.net/gwcoffey/4uKG5/1/
突出的代码:
var valNew = str1.replace(/^dataType=type:/, '').split('+type:');
for (var i = 0; i < valNew.length; i++) {
$('#' + valNew[i]).prop("checked", true);
}
我修了两件事:
首先:我们解析字符串,如下所示:
1.从头开始删除'dataType = type:'。现在我们刚刚: 2.拆分'+ type:'
第二:我将'#here'
更改为'#' + valNew[i]
,以便正确定位复选框。
答案 3 :(得分:0)
我喜欢当正则表达式来帮助时:D
var pattern = '/(?<=:)[\w]+/ig';
这将匹配&#39;之后的所有字词:&#39;
的dataType =类型:的板球强> +型:<强>足球强> +型:的曲棍球强>