按 T​​EXT 搜索 jQuery 的复选框列表项

Search checkboxlist item with jQuery by TEXT

我需要通过复选框的 TEXT 而非值来搜索具有 jQuery 的复选框列表项。

下面的代码按值搜索

    $(document).ready(function () {
    $("#maincontent_txtSearchTo").on("keyup", function () {
        debugger;
        var g = $(this).val().toLowerCase();
        $("#maincontent_chkQuestionTo tr td input").each(function () {
            var s = $(this).val().toLowerCase();
            $(this).parent().parent()[s.indexOf(g) !== -1 ? 'show' : 'hide']();
        });
    });
});

我需要它来按 TEXT 进行搜索。

请参阅下面的生成代码示例

    <input name="ctl00$maincontent$txtSearchTo" type="text" id="maincontent_txtSearchTo" Placeholder="Search..." />
    <table id="maincontent_chkQuestionTo">
    <tr>
        <td><input id="maincontent_chkQuestionTo_0" type="checkbox" name="ctl00$maincontent$chkQuestionTo[=12=]" value="2057" />
<label for="maincontent_chkQuestionTo_0">What is money in finance?</label>
</td>
    </tr><tr>
        <td><input id="maincontent_chkQuestionTo_1" type="checkbox" name="ctl00$maincontent$chkQuestionTo" value="2058" />
<label for="maincontent_chkQuestionTo_1">What is Good?</label>
</td>
    </tr>
</table>

如有帮助,不胜感激。

非常感谢

詹姆斯

我假设文本是指标签。如果是这样,您需要在标签上使用 .html()。

试试下面的代码;

$(document).ready(function () {
    $("#maincontent_txtSearch").on("keyup", function () {
        debugger;
        var g = $(this).val().toLowerCase();
        $("#maincontent_chkQuestion tr td input").each(function () {
            var td = $(this).parent();
            var label = $(td).find("label");

            if($(label).html().toLowerCase().indexOf(g) == -1){
               $(td).parent().hide();
            }else{
               $(td).parent().show();
            }
        });
    });
});