2014-01-16 33 views
0

我正在使用名为quicksearch的jquery插件来过滤注释列表。jquery quicksearch元素搜索不按预期方式工作

这里是从标记的代码段:

<ol class="commentlist"> 


     <li class="comment byuser comment-author-admin bypostauthor even thread-even depth-1" id="li-comment-9"> 

      <article id="comment-9" class="comment"> 


       <div class="comment-content"> 
        <p><span class="ecf-field ecf-field-1"> 

       <strong class="ecf-question">I CHOOSE :</strong><span class="ecf-answer">HTML5</span> 

        </span></p> 

       <p>I agree with HTML 5</p> 

       </div> 

      </article><!-- #comment-## --> 

     </li><!-- #comment-## --> 

我要的是这个<span class="ecf-answer">HTML5</span>搜寻,因此,如果搜索查询匹配HTML5显示<li>项目与搜索查询相对应。

的问题是,如果我搜索HTML5通过整个<li>项搜索并不仅仅是通过<span class="ecf-answer">HTML5</span>

我的问题是我怎么能使其通过这个<span class="ecf-answer">HTML5</span>搜索,但仍去除所有<li>项目哪些不相应?

这是一个fiddle以更好地理解我在说什么。

这可能吗?

+1

嗯。我可能会考虑go()方法并对缓存[i]进行测试。向包含子文字的P添加一个唯一的类。以cache [i]表示的元素... ala .. $('。omitP:contains(query)',cache [i]'),如果你回到一个长度..你有一个匹配。如果不是,则将该值拼接到数组外,然后递减匹配计数器。沿着这些路线。 –

+0

哦,我有点困惑,你能否给我一个简短的例子来更好地理解我必须做的事情。感谢并感谢您的评论 – agis

回答

0

在你通过JSFiddle提供的代码中,我看到缓存变量var是负责在查询中进行比较的变量,它作为整个<li>内部结构被传递。

通过编辑线#134:

return e.strip_html(this.innerHTML);

return e.strip_html($(this).find(".ecf-answer").html());

...你,然后告诉应用程序只比较每个.efc回答部分项目。

这里的工作小提琴http://jsfiddle.net/2QAdv/1/

然而,还有另一种解决方案是提供了快速搜索构造函数中,selector值,如下所示:

$("#id_search").quicksearch("ol li article ", { 
               noResults: '#noresults', 
               loader: 'span.loading', 
               selector: '.ecf-answer' 
               }); 

http://jsfiddle.net/2QAdv/2/

希望这是你正在寻找的。

干杯:)

+0

是的,这就是我要找的。谢谢 ! – agis