2015-04-23 4 views
0

Я создаю функцию поиска для приложения для смартфонов. Он идентифицирует div, содержащий искомый термин, и добавляет его в пустой результат поиска div. Это работает нормально. Я пытаюсь предотвратить отображение нескольких одинаковых результатов поиска, это обычно работает, но создает один дублированный результат поиска.Cloned 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 "' to '" некоторый текст " – Dhiraj

ответ

2

Вы не соответствующий текст, вы проверяете, если символьной строки "$originalText" матчи $('#copiedText').text()

Кроме того, обратите внимание на оказанной HTML, это копирование весь DIV в другой DIV, а не только текст ,

1

Выполните следующие действия,

1.remove цитаты из "$originalText" 2. Вы должны использовать $("#copiedText").find("div").text(), так как клонировали ДИВ присоединен к $("#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

Сначала удалите котировки вокруг "$originalText". Во-вторых, это не работает из-за разрыва строки в вашем 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

Смежные вопросы