2014-10-16 126 views
0

我喜欢Font-Awesome,但有时搜索正确的图标就是这样的痛苦:即没有“fa-help”图标,但我必须记住这是“fa-question” ;没有“fa-magnifying-glass”或“fa-view”,而是“fa-search”等等。搜索正确的图标通常是浪费时间。标签内的jQuery JSON搜索引擎

这里有一个想法:一个基于JSON的搜索引擎,其中我放置了一个术语(或标记)和正确的图标(S)返回。即,鉴于此JSON:

{ 

    "fa-camera": [ 
     "camera", 
     "picture", 
     "image" 
    ], 
    "fa-camera-retro": [ 
     "camera", 
     "retro", 
     "picture", 
     "image" 
    ], 
    "fa-check": [ 
     "check", 
     "tick", 
     "approve", 
     "ok" 
    ] 

} 

搜索 “嘀” 或 “批准” 应该返回 “FA-检查”;搜索“图片”应返回“fa-camera”和“fa-camera-retro”(以及与标签“picture”相关的任何其他图标)等。

当然,输入标记的一部分(即“pic”)并在键入时显示正确的图标(作为一种自动完成功能)也会很好:但也许我也会去进一步:-)

我可以很容易地与MySQL和PHP做到这一点,但我对jQuery的信心并不如此,除了创建表单之外,我不知道从哪里开始;更具体地说,我不知道如何搜索到标签的JSON以返回相应的图标

请帮忙吗?有没有一个明确的教程,或者一个jQuery插件?先谢谢你!

回答

1

你并不真的需要jquery这个简单的JS。这是一个可能的解决方案。我相信它可以被优化。祝你好运!

var db = { 

    "fa-camera": [ 
     "camera", 
     "picture", 
     "image" 
    ], 
    "fa-camera-retro": [ 
     "camera", 
     "retro", 
     "picture", 
     "image" 
    ], 
    "fa-check": [ 
     "check", 
     "tick", 
     "approve", 
     "ok" 
    ] 

}; 

function searchTags(tag){ 
    var response = []; 
    if(db instanceof Object) 
    { 
     for(j in db) 
     { 
      var tags = db[j]; 
      for(var i=0; i<tags.length; i++) 
      { 
       if(tags[i].toLowerCase().indexOf(tag) != -1) //you can improve this by using a regular expression 
       { 
        response.push(j); 
        break; 
       } 
      } 
     } 
    } 
    else 
    { 
     console.log("Please define a db object"); 
    } 

    return response; 
} 

var tag = prompt("Enter a tag you want to search for", ""); 

alert("Findings: " + searchTags(tag).join()); 

http://jsfiddle.net/y715vbgd/

+0

谢谢你,你向我指出了正确的方向,我将改进! :-)我会在GitHub上分享搜索引擎(也许我会要求代码审查之前),当它完成 – Ivan 2014-10-17 16:08:50