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"}];
私の質問は、「value」を返すときに、置き換えられたテキストが含まれていないのはなぜですか?ありがとう。
これが私のjsfiddleです:http://jsfiddle.net/bmcmahen/5HQga/9/