jQuery找到最近的

时间:2014-11-12 08:26:48

标签: javascript jquery html

我正在尝试获取列表项的href。

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代码片段

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);


    });
});

3 个答案:

答案 0 :(得分: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...
});

答案 1 :(得分:1)

如果this.swatch-category-container img元素,则anchor是祖先swatch-category-container元素的上一个兄弟之前的

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

答案 2 :(得分: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

   });