jQuery "compare" işlevimle ilgili bazı sorunlarım var. Misyonu iki metin alanını karşılaştırmak ve farklılıkları vurgulamaktır. Örn.,iki istemci ile yazılmış metin alanlarını karşılaştırır jQuery
örn. Bir metin alanında "Benim adım Michael" ve diğerinde "Benim adım Michel".
İşleçim her iki girdiyi de döndürmeli ve ilk girdiden "a" karakterini vurgulamalı ve ikinci karakterdeki eksik karakteri vurgulamalıdır.
İşlev şu ana kadar nasıl görünüyor, ancak zamanın% 100'ünde çalışmıyor gibi görünüyor.
$(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]);
}
});
}
});
Güncelleme: Daha kesin ve bazı kömürü "a" iki metnin herhangi önce, bu vurgulanmalıdır bir farktır includs ise orijinal soruyu
geliştirmek. İlk metinde "a" vurgulanmalı, ikinci metinde ben farkı vurgulayan boş bir alan (eksik karakter) girmek istiyorum. İki dizeleri aynı uzunluğa ve aynı kelimeleri düzenlemeyi sahip tek eğer test dize başında fazladan bir karakter eklerseniz
Sen işlevi gerektiğini söylemek – codelove
http://code.google.com/p/google-diff-match-patch/ bir göz atmak isteyebilirsiniz: "İkinci bir eksik kömürü vurgulamak" . Kayıp olan bir şeyi nasıl vurgulayabilirsin? Bu konumda bir boşluk karakteri ekleyip vurgulamak ister misiniz? – Floremin
Birkaç gün geçtikçe çok benzer bir şeye benzedim - ve bana gerçekten iyi çalışan [jsdiff] (http://ejohn.org/projects/javascript-diff-algorithm/) 'yi buldum. Çalışmasını gösteren bir örnek [bu bağlantıda] (http://blog.djsipe.com/js-diff/). – Fergus