【发布时间】:2013-03-29 16:02:04
【问题描述】:
我的 jQuery“比较”功能有一些问题。它的任务是比较两个文本区域并突出显示差异。
例如。在一个文本区域中显示“我的名字是迈克尔”,在另一个文本区域中显示“我的名字是米歇尔”。
我的函数将返回两个输入并突出显示第一个输入中的字符“a”,并突出显示第二个输入中缺少的字符。
这是该函数目前的样子,但它似乎不是 100% 的时间。
$(function () {
$('#btnCompare').on('click', function () {
compare();
});
function compare() {
$('#divColLeft').empty();
$('#divColRight').empty();
var textOne = $('#taOneComp').val();
var textTwo = $('#taTwoComp').val();
var output;
var outputX;
var arrTextOne = [];
var arrTextTwo = [];
for (var i = 0; i < textOne.length; i++) {
output = textOne.charAt(i);
arrTextOne.push(output);
}
for (var x = 0; x < textTwo.length; x++) {
outputX = textTwo.charAt(x);
arrTextTwo.push(outputX);
}
$.each(arrTextOne, function (y, e) {
if ($.inArray(e, arrTextTwo) == -1) {
$('#divColLeft').append(e);
$('#divColLeft').highlight(e);
} else {
$('#divColLeft').append(arrTextOne[y]);
}
});
$.each(arrTextTwo, function (z, f) {
if ($.inArray(f, arrTextOne) == -1) {
$('#divColRight').append(f);
$('#divColRight').highlight(f);
} else {
$('#divColRight').append(arrTextTwo[z]);
}
});
}
});
更新:为了更准确和改进原始问题
如果 some 在两个文本中的任何一个之前包含字符“a”,则应突出显示这一差异。在第一个文本中,应该突出显示“a”,在第二个文本中我想输入一个突出差异的空白区域(缺少的字符)。
【问题讨论】:
-
您说该函数应该:“突出显示第二个缺失的字符”。您如何突出显示缺少的内容?你会在那个位置插入一个空格字符然后突出显示吗?
-
弗洛雷明,这是一个正确的预期。还有我应该提到的。