我正在尝试获取列表项的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);
});
});
答案 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
});