我正在为智能手机应用创建搜索功能。它标识包含搜索的术语的div,并将其附加到空搜索结果div。这工作正常。我试图阻止显示多个相同的搜索结果,这通常有效但会创建一个重复的搜索结果。
看起来克隆和原始文本不同我在这里设置了一个jsfiddle http://jsfiddle.net/tonybabb/2mwr3hp2/3/说明了问题。
HTML:
<div id="originalText">
some text
</div>
<div id = "copiedText">
</div>
使用Javascript:
var $originalText = $("#originalText").text();
$("#originalText").clone(true, true).appendTo("#copiedText");
if ("$originalText".match($("#copiedText").text())) {
alert("Theyre the same");
} else {
alert("Theyre different");
}
我已经做了好几天了,我真的很感激一些建议。谢谢。
答案 0 :(得分:2)
您没有匹配文字,而是检查文字字符串"$originalText"
是否与$('#copiedText').text()
匹配
另外,查看呈现的HTML,这是将整个div复制到另一个div中,而不仅仅是文本。
答案 1 :(得分:1)
执行以下操作,
1.从"$originalText"
删除引号
2.您应该使用$("#copiedText").find("div").text()
,因为克隆的div附加到$("#copiedText")
var $originalText = $("#originalText").text();
$("#originalText").clone(true, true).appendTo("#copiedText");
if ($originalText.match($("#copiedText").find("div").text())) {
alert("Theyre the same");
}
else {
alert("Theyre different");
}
答案 2 :(得分:1)
我不知道你是否需要克隆,所以可能事件处理程序保持附加但这是另一种方法,它正在工作:
var $originalText = $("#originalText").text();
$("#copiedText").append($("#originalText").html());
if ($originalText.match($("#copiedText").text())) {
alert("Theyre the same");
} else {
alert("Theyre different");
}
在此解决方案中,只将包含的html复制到另一个div。
此外:您的变量$originalText
已包含字符串,因此您无需将其放在引号中以通过.match()
进行比较
<强> Demo 强>
答案 3 :(得分:0)
首先,删除"$originalText"
周围的引号。其次,由于你的html中的换行符,它不起作用。以下作品:
<div id="originalText">some text</div>
<div id="copiedText"></div>