拆分字符串并用它来检查复选框

时间:2014-06-02 09:25:44

标签: jquery

更新:这是工作代码,感谢King King的投入,感谢它。

http://jsfiddle.net/q2WBG/7/

这可能是个问题,但我很难做到。我有一个字符串,如下所示:

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);
}

我在小提琴中评论了这部分代码,你能提供修复吗?

4 个答案:

答案 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 =类型:的板球 +型:<强>足球 +型:的曲棍球