在深度嵌套的图库中获取 href 值
Getting href value in a deeply nested gallery
我无法找到获取 div 最后一个子项的 href 值的方法。基本上,布局是这样的:
<div id="slider">
<div id="slide1" class="slides">
<a href="items/show/1" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide2" class="slides">
<a href="items/show/2" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide3" class="slides">
<a href="items/show/3" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide4" class="slides">
<a href="items/show/4" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide5" class="slides">
<a href="items/show/5" class="link"> <-- trying to get this href value
<h2>Date</h2>
<h3>Title</h3>
</a>
</div>
我正在尝试获取“.link”的最后一个兄弟的 href 值,但我做不到。请指出我哪里做错了?到目前为止,这是我的 jQuery 代码:
$(document).ready(function(){
var latestUrl = $(".link").siblings(":last").attr("href");
console.log(latestUrl);
});
但是控制台returns:"undefined"
[更新] 我找到了解决方法:我需要等到页面加载所有内容,然后我才能查找最后一个子项的 href 属性。此示例是图片库,因此加载需要相当长的时间,可能在页面加载后一秒钟。所以这里是为 jQuery 脚本设置延迟的代码:
<script type="text/javascript">
window.setTimeout(function(){
alert($('.link:last').attr("href"));
}, 3000);
</script>
这设置了 3 秒的延迟。感谢您的回答!
您需要 select 最后一个 .slides
元素。您可以使用:
var latestUrl = $('#slider .slides:last').find('a').attr("href");
console.log(latestUrl);
或者,这也行得通:
var latestUrl = $('a', '#slider .slides:last').attr("href");
console.log(latestUrl);
虽然根据您提供的 HTML 使用 $('.link:last').attr('href')
可能有效,但如果 #slider
之外有 .link
元素,则它不会有效。此外,它不保证它会在最后一个 .slides
元素中。
应该和$('.link:last').attr('href')
一样简单
alert($('.link:last').attr('href'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="slider">
<div id="slide1" class="slides">
<a href="items/show/1" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide2" class="slides">
<a href="items/show/2" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide3" class="slides">
<a href="items/show/3" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide4" class="slides">
<a href="items/show/4" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide5" class="slides">
<a href="items/show/5" class="link"> <-- trying to get this href value
<h2>Date</h2>
<h3>Title</h3>
</a>
</div>
我无法找到获取 div 最后一个子项的 href 值的方法。基本上,布局是这样的:
<div id="slider">
<div id="slide1" class="slides">
<a href="items/show/1" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide2" class="slides">
<a href="items/show/2" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide3" class="slides">
<a href="items/show/3" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide4" class="slides">
<a href="items/show/4" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide5" class="slides">
<a href="items/show/5" class="link"> <-- trying to get this href value
<h2>Date</h2>
<h3>Title</h3>
</a>
</div>
我正在尝试获取“.link”的最后一个兄弟的 href 值,但我做不到。请指出我哪里做错了?到目前为止,这是我的 jQuery 代码:
$(document).ready(function(){
var latestUrl = $(".link").siblings(":last").attr("href");
console.log(latestUrl);
});
但是控制台returns:"undefined"
[更新] 我找到了解决方法:我需要等到页面加载所有内容,然后我才能查找最后一个子项的 href 属性。此示例是图片库,因此加载需要相当长的时间,可能在页面加载后一秒钟。所以这里是为 jQuery 脚本设置延迟的代码:
<script type="text/javascript">
window.setTimeout(function(){
alert($('.link:last').attr("href"));
}, 3000);
</script>
这设置了 3 秒的延迟。感谢您的回答!
您需要 select 最后一个 .slides
元素。您可以使用:
var latestUrl = $('#slider .slides:last').find('a').attr("href");
console.log(latestUrl);
或者,这也行得通:
var latestUrl = $('a', '#slider .slides:last').attr("href");
console.log(latestUrl);
虽然根据您提供的 HTML 使用 $('.link:last').attr('href')
可能有效,但如果 #slider
之外有 .link
元素,则它不会有效。此外,它不保证它会在最后一个 .slides
元素中。
应该和$('.link:last').attr('href')
alert($('.link:last').attr('href'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="slider">
<div id="slide1" class="slides">
<a href="items/show/1" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide2" class="slides">
<a href="items/show/2" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide3" class="slides">
<a href="items/show/3" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide4" class="slides">
<a href="items/show/4" class="link">
<h2>Date</h2>
<h3>Title</h3>
</a>
<div id="slide5" class="slides">
<a href="items/show/5" class="link"> <-- trying to get this href value
<h2>Date</h2>
<h3>Title</h3>
</a>
</div>