什么知道给定代码的论点.....?

时间:2015-07-16 12:41:37

标签: javascript jquery

$('.selector:contains("'+ filterText +'")').show()

显示基于字符串“搜索”的基础的div 现在它可以正常使用小写和大写的确切字符大小写

现在我在谷歌上搜索了我发现的许多链接,在几乎所有的网站和事件stackoverflow中,我发现类似的代码,如下面的代码..

jQuery.expr[':'].Contains = function(a,i,m){
    return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())> -1;
};

所以我对这个aim参数感兴趣

另外,如何将$(".selector":contains('"+ search +"')).show()( lowercase or upper case ) public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseDefaultFiles(); app.UseStaticFiles(); app.UseMvc(); } 区分开来。

使用此代码与我所写的将更好一个

关于使用按键进行自由文本搜索的替代解决方案将是最好的,但是

不使用第三方插件。

我想你们需要参考下面的链接 http://jsfiddle.net/potherca/ympBL/

2 个答案:

答案 0 :(得分:1)

有许多方法可以过滤包含给定文本的元素。一种形式如下。

$(".selector:contains('"+ search +"')").show();

但这是区分大小写的。如果您想要不区分大小写的匹配,您可能希望通过扩展jQuery的过滤器表达式来编写自定义过滤器方法,如下所示。

jQuery.extend(jQuery.expr[':'], {
    icontains: function(elem, index, arr){
        return jQuery(elem).text().toLowerCase().indexOf(arr[3].toLowerCase()) !== -1
    }
});
  

在为任何jQuery表达式创建的方法中,您将获得三个参数。第一个是特定迭代的DOM元素。第二个是DOM元素相对于调用表达式的原始集合的索引。 Last是一个类似于RegExp exec方法调用的数组。完整表达式是第一个数组位置,第二个是冒号和开始paren之间选择器的文本,最后一个是在parens中出现的字符串。

然后将其用作:

$(".selector:icontains('" + search + "')").show();

答案 1 :(得分:0)

我建议您学习使用filter(fn),它可以提供对过滤元素过滤方式的大量控制。

$(".selector").filter(function(){
     return $(this).toLowerCase().indexOf(search.toLowerCase()) >-1;
}).show();