更新:添加了 textEquals 选择器代码。
我正在对我的 Web 应用程序中的一个字段使用 jquery 和自动完成功能。
我有一个“更改”事件,可确保用户从自动完成列表中选择一个有效值。此事件效果很好,除非在所选值中有括号时 li:textequals 选择器不起作用。
如何使用 li:textequals 转义文本中的括号?
change: function (event, ui) {
//if the value of the textbox does not match a suggestion, clear its value
if ($(".ui-autocomplete li:textEquals('" + $(this).val() + "')").size() == 0) {
$(this).val('');
};
textEquals 选择器代码:
$.expr[':'].textEquals = function (a, i, m) {
return $(a).text().match("^" + m[3] + "$");
};
最佳答案
我还没有测试过这个,但 jQuery 文档建议使用两个反斜杠:
所以在你的情况下,它可能需要是:
var val = $(this).val()
.replace("(", "\\(")
.replace(")", "\\)");
if ($(".ui-autocomplete li:textEquals('" + val + "')").size() == 0) {
$(this).val('');
};
关于jquery - 如何使用 li :textequals 转义括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8479017/