: содержит регистр не работает должным образом

0

Я добавил код, чтобы перезаписать метод 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"
});

});
  • 0
    Он отлично работает в скрипке, которую вы связали ...
  • 0
    скрипка работает нормально ... она меняет цвет jQuery, Javascript и JQUERY
Показать ещё 1 комментарий
Теги:

1 ответ

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;
})

Демо: скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню