我有一个类似于此的项目列表:
<ul>
<li>
<h3 class="headings"> <a href="page1.html"></a> </h3>
<div class="details">
<p>Item Details</p>
<a href="#" class="linktoitem">Click Here</a> </div>
</li>
<li>
<h3 class="headings"> <a href="page2.html"></a> </h3>
<div class="details">
<p>Item Details</p>
<a href="#" class="linktoitem">Click Here</a> </div>
</li>
<li>
<h3 class="headings"> <a href="page3.html"></a> </h3>
<div class="details">
<p>Item Details</p>
<a href="#" class="linktoitem">Click Here</a> </div>
</li>
我的目标是在同一个li里面的h3里面添加Click Here linkk。我正试图这样做:
$('li').each(function(){
var linkitem = $('.linktoitem').closest('h3').find('a').attr('href');
$('a.linktoitem').attr('href' , linkitem)
});
不幸的是链接是未定义的。
任何帮助都非常感激。
答案 0 :(得分:2)
你可以这样做:
$('li').each(function(){
var linkitem = $('h3 a', this).attr('href');
$('a.linktoitem', this).attr('href' , linkitem)
});
如果我的心灵阅读证明是正确的:你想要实现这个HTML
<ul>
<li>
<h3 class="headings"> <a href="page1.html"></a> </h3>
<div class="details">
<p>Item Details</p>
<a class="linktoitem" href="page1.html">Click Here</a> </div>
</li>
<li>
<h3 class="headings"> <a href="page2.html"></a> </h3>
<div class="details">
<p>Item Details</p>
<a class="linktoitem" href="page2.html">Click Here</a> </div>
</li>
<li>
<h3 class="headings"> <a href="page3.html"></a> </h3>
<div class="details">
<p>Item Details</p>
<a class="linktoitem" href="page3.html">Click Here</a> </div>
</li>
</ul>
答案 1 :(得分:2)
像这样试过
$(document).ready(function (){
$('.details a', 'li').each(function(){
alert($(this).attr('href'));
});
});
答案 2 :(得分:2)
你的问题是closest
只找到祖先,而你正在寻找父母的兄弟姐妹:
var linkitem = $('.linktoitem').parent().siblings('h3').find('a').attr('href')
其他答案效率更高,但我认为指出错误会很有用。
答案 3 :(得分:1)
你应该这样做:
$('li').each(function(){
var href = $(this).children('h3').children('a').attr('href');
$(this).find('.linktoitem').attr('href',href);
})