有没有人知道一个比较两个字符串并突出显示差异的JQuery插件。我试过搜索但是虽然有些东西我找不到特定的JQuery。一个做我想要的javascript的例子是
这个问题是我想一次在多个不同的字符串上实现它(在表的每一行上1个),这就是为什么我想要一个Jquery,所以我可以使用JQuerys每个选择器方法
答案 0 :(得分:9)
您可以使用Javascript Diff Algorithm 查看演示:http://jsfiddle.net/gion_13/Z3CRA/1/。
而不是直接调用和应用函数:
document.body.innerHTML = diffString(
"The red brown fox jumped over the rolling log.",
"The brown spotted fox leaped over the rolling log"
);
您可以将其包装到jquery插件中:
$.fn.pluginName = function(newValue){
return this.each(function(){
$(this).html(
diffString(
$(this).text(),
newValue
)
);
});
}
答案 1 :(得分:1)
我不会在你的情况下寻找一个jQuery插件。 jQuery是一个帮助处理DOM更改的框架,但是jQuery中没有很多字符串函数。
通过Google发现的另一个与您引用的几乎相同: http://www.daftlogic.com/sandbox-javascript-compare-differences-between-strings.htm
修改强> 看起来上面提到的脚本与John Resig使用的脚本相同 感谢您指出danishgoel 结束编辑
您的问题是您希望它在表格中的项目列表上运行吗?
你不需要jQuery来实际检查差异,但你可以使用for
循环,或围绕它调用jQuery each
。
喜欢这个HTML:
<ul id='sentences'>
<li>sentence 1</li>
<li>sentence 2</li>
<li>sentence 3</li>
</ul>
和这个JavaScript:
var default = "my sentence";
$('#sentences li').each(function(){
var li = $(this);
var result = $('<div/>').html( diffString( default, li.text() ) );
li.append(result);
});
正如您所看到的,这里您在jQuery选择器上使用jQuery each
,但您需要一个常规的JavaScript函数。不需要jQuery插件就可以完全相同。
答案 2 :(得分:-4)
在谷歌搜索并得到了这个。 jQueryCompare
看看它。