与jQuery不区分大小写?

时间:2011-07-24 17:57:43

标签: jquery case-insensitive

在下面的“dev函数”中,我正在尝试将字符串转换为小写,以便在“html”变量中的字符串与span标记的内容之间执行小写到小写的比较。

在尝试将span转换为小写时,我必须在dev函数上做错了,因为高亮类似乎没有附加...

var html = jQuery('#content').html().toLowerCase();

    //existing function works when the span is preset to lowercase
    jQuery(".my_kw").find("span").filter(function() {
        return html.indexOf(jQuery(this).html()) != -1;
        }).each(function() {
            jQuery(this).addClass('highlight');
        });
    }

    //dev function. Trying to allow for spans to be mixed case, and force to lowercase only for comparison
    jQuery(".my_kw").find("span").filter(function() {
        var kw = jQuery(this).toLowerCase();
        return html.indexOf(kw.html()) != -1;
        }).each(function() {
            jQuery(this).addClass('highlight');
        });
    }

2 个答案:

答案 0 :(得分:7)

我认为你错过了对.html()

的电话

考虑你的第一个电话:

return html.indexOf(jQuery(this).html()) != -1;

和你的第二个:

var kw = jQuery(this).toLowerCase();

也就是说,你可能想要:

var kw = jQuery(this).html().toLowerCase();
return html.indexOf(kw) != -1;

答案 1 :(得分:0)

在将span内容转换为小写字母(第2行)之后,就像你调用.html()函数(第3行)一样,对我来说,从而产生一个混合大小写字符串。试试这个:

var kw = jQuery(this).html().toLowerCase();
return html.indexOf(kw) != -1;