克隆的div与原始的不同

时间:2015-04-23 13:47:36

标签: jquery

我正在为智能手机应用创建搜索功能。它标识包含搜索的术语的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");   
}

我已经做了好几天了,我真的很感激一些建议。谢谢。

4 个答案:

答案 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");   
}

Doc here

答案 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>