:包含区分大小写不正常的工作

时间:2014-03-03 15:05:08

标签: javascript jquery html

我添加了代码来覆盖contains方法但是我仍然没有得到正确的结果。我创建了一个JFiddle来显示问题。 http://jsfiddle.net/zjAyX/我也尝试过使用jQuery 1.8的代码,这是我正在使用的jQuery版本。我在哪里放置代码?

$(function() { 

    $.extend($.expr[":"], {
    "containsIN": function(elem, i, match, array) {
    return (elem.textContent || elem.innerText || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
    }
    });

$("#searchInput").keyup(function () {

    //split the current value of searchInput
    var data = this.value.split(" ");
    //create a jquery object of the rows
    var jo = $("tbody").find("tr");
    if (this.value == "") {
        jo.hide();
        return;
    }
    //hide all the rows
    jo.hide();



    //Recusively filter the jquery object to get results.
    jo.filter(function (i, v) {

        var $t = $(this);

        for (var d = 0; d < data.length; ++d) {
            if ($t.is(":contains('" + data[d] + "')")) {
                return true;
            }
        }
        return false;
    })
    //show the rows that match.
    .show();
}).focus(function () {
    this.value = "";
    $(this).css({
        "color": "black"
    });
    $(this).unbind('focus');
}).css({
    "color": "#C0C0C0"
});

});

1 个答案:

答案 0 :(得分:0)

在您的情况下使用:containsIN()代替contains()

jo.filter(function (i, v) {
    var $t = $(this);
    for (var d = 0; d < data.length; ++d) {
        if ($t.is(":containsIN('" + data[d] + "')")) {
            return true;
        }
    }
    return false;
})

演示:Fiddle