我有一段代码,用于比较一个名为#notes的可信div中的所有文本,该文件来自一个名为dictionary.txt的文本文档。
它遍历来自#notes的所有拆分文本,称为splitCntEditableTxt,并检查它是否匹配。如果匹配,则会创建一个带有匹配值的新跨度。
现在,我想通过使用循环中所有匹配的val来创建一个新数组。那么从循环中创建该数组的任何想法?这是部分代码。再次感谢〜!!!
$('#lattePool').load('dictionary.txt', function(){
var text = $("#lattePool").text().toUpperCase();
var words = text.split("\n");
var dictionary = new Array();
for(var i=0; i < words.length; i++) {
dictionary[i] = words[i];
};
var contentEditableTxt = $("#notes").text();
var splitCntEditableTxt = contentEditableTxt.replace(/([.,-=/])/g," ").split(" ");
//alert(splitCntEditableTxt); //DEBUG
$.each(splitCntEditableTxt,function(key,val){
var nameFound = $.inArray(val.trim().toUpperCase(), dictionary);
if (nameFound === -1){
} else {
$("#notes").append('<span class="matchedWord">'+val+'</span>');
}
});
});
答案 0 :(得分:0)
在$.each
之外初始化一个数组,然后在循环中附加到该数组。这是范围问题比什么都重要。
如果你不知道如何做我建议的事情,请告诉我,但如果你自己解决这个问题,你将会学到更多。
答案 1 :(得分:0)
var vals_array = [];
每次在该数组中找到'val'时。将此else语句更改为:
else {
$("#notes").append('<span class="matchedWord">'+val+'</span>');
vals_array.push(val);
}
P.S。:节省一些空间并将if-else语句更改为:
if (nameFound !== -1){
$("#notes").append('<span class="matchedWord">'+val+'</span>');
vals_array.push(val);
}