【发布时间】:2012-05-06 17:04:50
【问题描述】:
我有下面的 jQuery,当输入值(在数组中)与 .adiv(在数组中)的 html 匹配时,我会收到一个警报,说是真的,但只有当两个数组中的所有值都完全匹配时才会发生这种情况.我想做的是,如果临时数组中的所有值都与 divar 数组中的任何值匹配,则返回 true。所以例如。如果 .adiv html 是 this is a div 并且输入值是 this div 返回 true is div 返回 true 等等,但是如果输入值是 thisisadiv 或例如 isa div 或 random words 返回 false。 ALSO 如果临时数组包含一个不在 divar 数组中的单词,它应该返回 false
http://jsfiddle.net/7Q4CJ/
jQuery.fn.compare = function(t) {
if (this.length != t.length) { return false; }
var a = this.sort(),
b = t.sort();
for (var i = 0; t[i]; i++) {
if (a[i] !== b[i]) {
return false;
}
}
return true;
};
$("button").click(function() {
var inputstr = $(".searchval").val().replace(/ /g, ",");
var temp = new Array();
temp = inputstr.split(",");
var dival = $(".adiv").html().replace(/ /g, ",");
var divar = new Array();
divar = dival.split(",");
alert($(temp).compare(divar));
});
【问题讨论】:
-
compare期望相同(排序后)而不是相似。 -
它的意思是......我需要改变它以找到相似之处
-
好的,我明白了。请参阅下面的迟来的答案。
标签: javascript jquery arrays match