10
09/2014
jquery contains()
今天再次修改 搜索页面,自己用的更方便一些。加上了多关键字搜索,用的就是 jquery contains()。
$('.content').find('dt:contains("jquery")')
匹配含有 “jquery” 文字的 dt 标签
$('.content').find('dt:contains("jquery"):contains("hexo")')
匹配 同时 含有 “jquery” 和 “hexo” 文字的 dt 标签
$('.content').find('dt:contains("jquery"),dt:contains("hexo")')
匹配含有 “jquery” 或者 “hexo” 文字的 dt 标签
如何让 contains() 不分大小写?
中文没问题,但搜索 Sublime 和 sublime 不一样!所以需要扩展 contains()。以下代码适用于 jquery 1.8 以上
$.expr[":"].contains = $.expr.createPseudo(function(arg) { return function( elem ) { return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0; }; });
老版本 jquery 用下面代码
jQuery.expr[':'].Contains = function(a, i, m) { return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0; };
玩一下