我已经查看了与在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()或类似的。如果自定义选择器是最佳方式,我将如何/在何处将其集成到我的代码中?
更新:
这是一个带有工作代码的JSFiddle,感谢dystroy: http://jsfiddle.net/XcbMQ/2/
答案 0 :(得分:4)
你可以做到
if ($("#query").val().toLowerCase() == "kittens") {
答案 1 :(得分: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;
}
});
这是一个更新的小提琴......