jQuery の「比較」機能に問題があります。その使命は、2 つのテキスト領域を比較し、違いを強調することです。
例えば。あるテキスト領域には「私の名前はマイケルです」、別のテキスト領域には「私の名前はミシェルです」。
私の関数は両方の入力を返し、最初の入力から文字「a」を強調表示し、2 番目の入力から不足している文字を強調表示します。
これは、これまでの関数の外観ですが、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]);
}
});
}
});
更新:元の質問をより正確にして改善する
2 つのテキストのいずれかの前に「a」という文字が含まれている場合、これは強調すべき違いです。最初のテキストでは「a」を強調表示する必要があります.2番目のテキストでは、違いを強調する空のスペースを入力したいと思います(欠落している文字)。