Обход с помощью jQuery и сопоставление элементов

Я клонирую div (с h3, абзацем и кликабельной строкой тега) по щелчку строки тега и добавляю div на свою боковую панель. Существует несколько div с такой же структурой, и когда div уже был клонирован, я хочу убедиться, что этот div не будет клонирован во второй раз. Для этого я пытаюсь сопоставить текст H3 элемента div, строка тега которого была нажата, с текстом H3 элементов div, которые уже были клонированы. Если есть совпадение, я вывожу предупреждающее сообщение и не добавляю клонированный div на боковую панель.

Вот код, который у меня есть:

$(this).click(function(){ // where $(this) is the tag line

var clone = $(this).parents('.full_result').clone(); // on the click of the tag line, find the parent whose class is .full_result and clones it (.full_result is the class of all divs)

var jobsH3 = $(this).parents('.full_result').find('h3').text(); // returns the text of the H3 that is contained in the same div as the clicked tag line

var middleColumnInnerDiv=$('#middle_column').find('.full_result').find('h3').text(); // returns the text of all h3 whose divs have been cloned to the side bar(sidebar id= #middle_column)

// ниже должно произойти волшебство, но я не могу заставить его работать. Пробовал несколько селекторов и методов. :contains — лишь один из них.

  $(this).parents('.full_result').find('h3').each(function(){
      if('middleColumnInnerDiv:contains(jobsH3)'){ // this line is giving me a headache
     alert('You already saved this information');   
      } else {
           clone.appendTo('#middle_column').hide().fadeIn(750);
    }               
   });
};

Любая помощь высоко ценится!


person Gabriel Ferraz    schedule 26.02.2014    source источник


Ответы (1)


вам не хватает $ нотации Jquery. попробуй это $("middleColumnInnerDiv:contains('.jobsH3')")

person Subash Selvaraj    schedule 26.02.2014
comment
Спасибо, Субаш. Однако это не сработало. Также не уверен, почему вы добавили '.' к jobsH3, так как это не класс, а переменная. - person Gabriel Ferraz; 27.02.2014
comment
создайте FIDDLE, чтобы его было легко отлаживать. - person Subash Selvaraj; 27.02.2014
comment
Спасибо. Я решил проблему. Теперь я сопоставляю элементы по идентификатору. Сопоставление элементов по тексту было проблематичным, потому что каждый новый h3, который добавлялся на боковую панель, объединялся, образуя длинную строку текста. Мне пришлось бы сопоставлять строки, а не сам текст. Сопоставив идентификаторы, было намного проще решить проблему. - person Gabriel Ferraz; 01.03.2014