Javascript jQuery筛选器按文本输入选择选项

Javascript jQuery筛选器按文本输入选择选项,javascript,jquery,Javascript,Jquery,我有一个选择列表,我想从文本输入中过滤选项 我编写了以下jQuery代码: $('#NotPublishedSelectFilter').keyup(function () { console.log("NotPublishedSelectFilter keyup"); var filterText = $(this).val(); console.log("filterText: " + filterText); var allOptions = $('#Not

我有一个选择列表,我想从文本输入中过滤选项

我编写了以下jQuery代码:

$('#NotPublishedSelectFilter').keyup(function () {
    console.log("NotPublishedSelectFilter keyup");
    var filterText = $(this).val();
    console.log("filterText: " + filterText);
    var allOptions = $('#NotPublishedSelect').find('option');
    allOptions.each(function (i, e) {
        console.log(i);
        if (e.text().indexOf(filterText) != -1) {
            e.show();
            console.log("show");
        } else {
            e.hide();
            console.log("hide");
        }
    });
});
然而,我得到了错误uncaughttypeerror:e.text不是一个函数。我进入了每个循环,所以e应该有一些选择


我做错了什么

尝试在循环中更改选择器:-

$('#NotPublishedSelectFilter').keyup(function () {
    console.log("NotPublishedSelectFilter keyup");
    var filterText = $(this).val();
    console.log("filterText: " + filterText);
    var allOptions = $('#NotPublishedSelect').find('option');
    allOptions.each(function (i, e) {
        console.log(i);
        if ($(e).text().indexOf(filterText) != -1) {
            $(e).show();
            console.log("show");
        } else {
            $(e).hide();
            console.log("hide");
        }
    });
});

它可能会对您有所帮助。

尝试在循环中更改选择器:-

$('#NotPublishedSelectFilter').keyup(function () {
    console.log("NotPublishedSelectFilter keyup");
    var filterText = $(this).val();
    console.log("filterText: " + filterText);
    var allOptions = $('#NotPublishedSelect').find('option');
    allOptions.each(function (i, e) {
        console.log(i);
        if ($(e).text().indexOf(filterText) != -1) {
            $(e).show();
            console.log("show");
        } else {
            $(e).hide();
            console.log("hide");
        }
    });
});

它可能会对您有所帮助。

您必须使用jQuery对象中的当前值才能访问.text方法。尝试:

    $('#NotPublishedSelectFilter').keyup(function () {
        console.log("NotPublishedSelectFilter keyup");
        var filterText = $(this).val();
        console.log("filterText: " + filterText);
        var allOptions = $('#NotPublishedSelect').find('option');
        allOptions.each(function (i, e) {
            console.log(i);
            if ($(this).text().indexOf(filterText) != -1) {
                $(this).show();
                console.log("show");
            } else {
                $(this).hide();
                console.log("hide");
            }
        });
    });

必须使用jQuery对象中的当前值才能访问.text方法。尝试:

    $('#NotPublishedSelectFilter').keyup(function () {
        console.log("NotPublishedSelectFilter keyup");
        var filterText = $(this).val();
        console.log("filterText: " + filterText);
        var allOptions = $('#NotPublishedSelect').find('option');
        allOptions.each(function (i, e) {
            console.log(i);
            if ($(this).text().indexOf(filterText) != -1) {
                $(this).show();
                console.log("show");
            } else {
                $(this).hide();
                console.log("hide");
            }
        });
    });

您需要对象变量,但需要访问事件变量。所以请用这个

$('#NotPublishedSelectFilter').keyup(function () {
    console.log("NotPublishedSelectFilter keyup");
    var filterText = $(this).val();
    console.log("filterText: " + filterText);
    var allOptions = $('#NotPublishedSelect').find('option');
    allOptions.each(function (i, e) {
        console.log(i);
        $(this).text()
        if ($(this).text().indexOf(filterText) != -1) {
            $(this).show();
            console.log("show");
        } else {
            $(this).hide();
            console.log("hide");
        }
    });
});

您需要对象变量,但需要访问事件变量。所以请用这个

$('#NotPublishedSelectFilter').keyup(function () {
    console.log("NotPublishedSelectFilter keyup");
    var filterText = $(this).val();
    console.log("filterText: " + filterText);
    var allOptions = $('#NotPublishedSelect').find('option');
    allOptions.each(function (i, e) {
        console.log(i);
        $(this).text()
        if ($(this).text().indexOf(filterText) != -1) {
            $(this).show();
            console.log("show");
        } else {
            $(this).hide();
            console.log("hide");
        }
    });
});

使用$e或$this谢谢,我忘了。。正在工作。$'NotPublishedSelect'。查找'option:包含'+filterText+。显示使用$e或$This谢谢,我忘了。。正在工作。$'NotPublishedSelect'.find'option:包含'+filterText+.show'