我的 jQuery“比较”功能有一些问题。它的任务是比较两个文本区域并突出显示差异。
例如。一个文本区域中的“My name is Michael”,另一个文本区域中的“My name is Michel”。
我的函数将返回两个输入并突出显示第一个输入中的字符“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]);
}
});
}
});
更新:更准确并改进原始问题
如果有些在两个文本中的任何一个之前包含字符“a”,那么这是应该突出显示的差异。在第一个文本中,应该突出显示“a”,在第二个文本中我想输入一个突出显示差异的空白区域(丢失的字符)。