1

我已经查看了与在 JQuery 中编写自定义选择器相关的答案(例如:Writing jQuery selector case-insensitive version),但仍然不清楚自定义选择器是否是解决我的问题的最佳方法。

我想从文本框中获取输入并将其与已知术语列表进行比较。我希望比较不区分大小写。这是我正在尝试做的事情:

 $('#query').change(function() {   
    if ($("#query").val() == "kittens") {
       $('#change').text("kittens")
    }
    else if ($("#query").val() == "puppies") {
       $('#change').text("puppies")
    }
    else {
       $('#change').text("neither kittens nor puppies")
    }
 });

这是一个 JSFiddle:http: //jsfiddle.net/XcbMQ/

我希望“小猫”、“小猫”和“小猫”都符合小猫的条件。我不清楚自定义选择器是否是最好的方法,或者我是否可以使用 .is() 或类似的。如果自定义选择器是最好的方法,我如何/在哪里将它集成到我的代码中?

更新:

由于dystroy,这是一个带有工作代码的JSFiddle:http: //jsfiddle.net/XcbMQ/2/

4

2 回答 2

4

你可以做

if ($("#query").val().toLowerCase() == "kittens") {
于 2013-05-02T12:12:43.767 回答
2

这是一个使用switch而不是多个 if 语句的版本。做同样的工作,但有点整洁......

$('#change').text("nothing entered yet")

$('#query').change(function() {   
    var text = $(this).val().toLowerCase();
    switch (text) {
        case "kittens":
            $('#change').text("kittens");
            break;
        case "puppies":
            $('#change').text("puppies");
            break;
        default:
            $('#change').text("neither kittens nor puppies");    
            break;
    }
});

这是一个更新的小提琴......

http://jsfiddle.net/XcbMQ/3/

于 2013-05-02T12:19:18.903 回答