Gabriel Ferraz
Gabriel Ferraz

Reputation: 632

Traversing with jQuery and matching elements

I am cloning a div (with an h3, a paragraph, and a clickable tag line) on the click of the tag line and appending the div to my sidebar. There is several divs with this same structure and when a div has already been cloned I want to make sure that that div is not cloned a second time. To accomplish this I am trying to match the H3 text of the div whose tag line was clicked with the H3 text of divs that have already been cloned. If there is a match, I pop up an alert message and don't append the cloned div to the side bar.

Here is the code i have:

$(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)

//below is where the magic should happen, but i cannot make it work. Tried several selectors and methods. The :contains is but one of them.

  $(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);
    }               
   });
};

Any help is much appreciated!

Upvotes: 0

Views: 78

Answers (1)

Subash Selvaraj
Subash Selvaraj

Reputation: 3385

you are missing $ Jquery notation. try this $("middleColumnInnerDiv:contains('.jobsH3')")

Upvotes: 2

Related Questions