2014-11-12 4 views
1

Я пытаюсь получить href элемента списка.jQuery найти ближайший

HTML

<div class="popup" style="display: none;"> 
    <div class="product">   
     <div class="photo"> 
      <a href="" class="sendkleur" id="link69"> <!-- href im trying to reach -->  
       <img id="product-collection-image-69" src="" alt="Test kleur" class="popup-image69"> 
      </a> 
     </div> 
     <a href="" class="sendkleur" id="link69">   
      <strong>Test kleur</strong> 
     </a> 
     <span class="swatchLabel-category">Kleur:</span> 
     <p class="float-clearer"></p> 
     <div class="swatch-category-container" style="clear:both;" id="ul-attribute137-69"> 
      <img onclick="listSwitcher();" src="" id="a137-32" class="swatch-category" alt="Beige" width="12px" height="12px" title="Beige"> 
       <img onclick="listSwitcher();" src="" id="a137-36" class="swatch-category" alt="Zwart" width="12px" height="12px" title="Zwart"> 
     </div> 
    <p class="float-clearer"></p>  
    </div>     
</div> 

Есть несколько всплывающих окон на сайте и то, что делает его трудным. Сначала я использовал этот код

var link = jQuery('.photo').find('a')[0].getAttribute("href"); 

Но это возвращает конечно только href первого всплывающего окна. Тогда я попробовал этот код:

var link = jQuery('.photo').closest('a').attr("href"); 

Но вернулся undefined

Тогда я попытался это:

var link = jQuery(this).closest('a').attr("href"); 

Но это также возвращает undefined

Редактировать Вот вся jQuery code snippet

jQuery(document).ready(function(){ 
    jQuery('.swatch-category-container img').click(function(){ 


     var kleur = jQuery(this).attr('title'); 
     var link = jQuery('.photo').find('a').attr("href"); 
     console.log(link); 
     link += "?kleur="+kleur; 
     console.log(link); 
     jQuery('.photo').find('.sendkleur').attr("href", link); 


    }); 
}); 
+0

что это такое? –

+0

На каком событии вы работаете и какие данные вы пытаетесь получить? Ваш вопрос непонятен. –

+0

@ArunPJohny К кликному элементу '.swatch-category-container img' – user3164891

ответ

3

Работы с .swatch-category-container img элемента, вы можете пройти через DOM, чтобы найти нужный a например:

$('.swatch-category-container img').click(function() { 
    var link = $(this).closest('.popup').find('.photo a').prop('href'); 

    // do something with link here... 
}); 
+0

Спасибо, что сработал! – user3164891

+0

@ user3164891 без проблем, рад помочь :) –

1

Если this является .swatch-category-container img элемента пор anchor является предыдущим предыдущим собратом предка swatch-category-container элемента

var link = jQuery(this).closest('.swatch-category-container').prev().prev().attr("href"); 
0

Поскольку вы сказали несколько всплывающих окон, идея была бы такой.

1. Get all popups 
2. From each popup in all popups 
    Get the photo href item 


$('.popup').each(function() { 
     var hrefItem = $(this).find('.photo a').attr('href'); 
     //Do your processing with href item 

    }); 
Смежные вопросы