我有一个搜索字段,如果我输入电路板,它只会返回任何内容,但如果我输入 Board 则会返回。 我开始搜索并发现与HTML不同,XHTML区分大小写....
示例XML
<prop-db>
<prop caption="Sign Board A" />
</prop-db>
JS片段
switch (last_search) {
case "show_all":
load('prop-db > prop');
break;
default:
load('prop-db > prop[caption*="{0}"]'.format(last_search));
}
默认情况下会尝试查找用户在search_field中输入的内容。 这就是load函数如何获取带有标题的元素:
if (!search) {
data2 = $(data).find('prop-db > prop').slice(-18);
} else { //gets executed when search equals true (when load is called with a parameter)
data2 = $(data).find(syntax);
}
所以它应该找到包含Board / board / BoaRD等的每个元素......(find应该不区分大小写)
编辑 - 尝试使用filter + regex,我知道我做错了....:data2 = $(data).find(syntax).filter(function() {
return $(this).text().match(new RegExp(str, 'i'));
});
答案 0 :(得分:0)
怎么样:
var regex = new RegExp(str, 'i');
data2 = $(data).find('prop-db > prop').filter(function() {
return $(this).attr('caption').match(regex);
};
.text()
将返回<prop />
xml元素的内容,在帖子的示例中为空字符串。相反,我们需要测试<prop />
元素的标题属性。
将正则表达式对象创建的创建移出循环,将确保无论检查多少元素,都只应创建一个对象。