我正在尝试自学使用 JSON、数组和字符串的基础知识,因此我正在尝试构建一个简单的正则表达式搜索和突出显示。我的问题是,当我尝试用包含查询项的字符串替换查询项时,它似乎没有将其返回到正在构建的新数组中。
这是我的功能:
function jqueryMap() {
var searchterm = "item";
var query = new RegExp("itEM", "i");
var foo = $.map(array, function(value,key){
if (value.classname.search(query) != -1){ //0 = none
value.classname.replace(query, "<div class='highlight'>"+searchterm+"</div>");
return value;
}
});
$.each(foo, function(key,value) {
$("body").append(key +" : "+value.classname+" <br>");
});
}
以及它正在搜索的数组:
var array = [{
"classname": "item",
"content": "content1"},
{
"classname": "item",
"content": "content2"},
{
"classname": "item",
"content": "content1"},
{
"classname": "im gonna say its item",
"content": "content1"},
{
"classname": "blam",
"content": "content1"},
{
"classname": "item",
"content": "content1"},
{
"classname": "item3",
"content": "content1"}];
我的问题是,为什么当我返回“值”时,不包括被替换的文本?谢谢。
这是我的 jsfiddle:http: //jsfiddle.net/bmcmahen/5HQga/9/