2015-04-23 90 views
0

我正在爲智能手機應用程序創建搜索功能。它標識包含搜索到的術語的div並將其附加到空的搜索結果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

'「$ originalText」比較'是一個字符串。您正在比較'「$ originalText」'到'「一些文本」' – Dhiraj

回答

2

你不匹配的文本,你檢查,如果文本字符串"$originalText"比賽$('#copiedText').text()

而且,看呈現的HTML,這是複製整個DIV到其他分區,而不僅僅是文字。從"$originalText" 2.

1

執行以下操作,

1.去除報價,您應該使用$("#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"); 
} 

Fiddle

0

首先,刪除附近的報價。其次,它不起作用,因爲你的html中有換行符。以下作品:

<div id="originalText">some text</div> 
<div id="copiedText"></div> 
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