Jquery:按类或选择器获取链接
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/9869540/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Jquery: get link by class or selector
提问by user1292580
I'm creating a list of images from a folder, and then I open them in a fancybox... so I have thumnails, big images, and a text link to full image.
我正在从一个文件夹中创建一个图像列表,然后我在一个fancybox 中打开它们......所以我有缩略图、大图像和一个指向完整图像的文本链接。
<div id="download_image">
<p><a href="images/download/folder/big/<?php echo $file;?>" class="fancybox"><img src="<?php echo $path;?><?php echo $file?>" /></a></p>
<p><a href="images/download/folder/full/<?php echo $file;?>.zip" class="btn-download">DOWNLOAD</a></p>
</div>
Then I'm getting images path by jquery, for each image:
然后我通过 jquery 为每个图像获取图像路径:
var download_image = jQuery('#download_image');
var images = download_image.find('img');
download_images.each(function(){
var img = jQuery(this);
var img_source = img.attr('src');
Now I need to get the url of the "btn-download" link for each image... but I don't know which selector must I use! Any advice?
现在我需要获取每个图像的“btn-download”链接的 url ......但我不知道我必须使用哪个选择器!有什么建议吗?
回答by Ben Carey
Use $('.btn-download')
to select an element by class.
用于$('.btn-download')
按类选择元素。
If you want to get the href attribute then simply use:
如果你想获得 href 属性,那么只需使用:
var href = $('.btn-download').attr('href');
To loop through each element use:
要遍历每个元素,请使用:
$('.btn-download').each(function(){
var href = $(this).attr('href');
// do something with href
})
回答by Amir Ismail
Try this
尝试这个
$('a[class=btn-download]').attr('href')
回答by Mathias Bynens
$('.btn-download').each(function() {
console.log(this.href); // get the normalized `href` property; fastest solution
console.log($(this).attr('href')); // get the exact `href` attribute value
});
Note that the answers advocating $('.btn-download').attr('href')
are incorrect, as those would only return the href
attribute value for the first element in the set.
请注意,提倡的答案$('.btn-download').attr('href')
是不正确的,因为它们只会返回href
集合中第一个元素的属性值。
回答by elaxsj
Try this:
尝试这个:
$('#download_image').each(function(){
var img_source = $('img', this).attr('src');
var link_href = $('a.btn-download', this).attr('href');
});
回答by Jesse van Assen
var download_image = jQuery('#download_image');
download_image.each(function() {
var imgUrl = $(this).find('p > a > img').prop('src');
var downloadUrl = $(this).find('p > a.btn-download').prop('href');
// do something with the urls here.
});
The each
-function is kind of redundant, because you should only have one element with a specific id. Listed here just in case you want to have more than one download image and button.
该each
功能全是那种多余的,因为你只能有一个特定ID的一个元素。此处列出以防万一您想要多个下载图像和按钮。
In your question you mention that you are getting the path for each image. I strongly advise you to make download_image
a class if you have more than one download_image
element.
在您的问题中,您提到您正在获取每个图像的路径。download_image
如果您有多个download_image
元素,我强烈建议您创建一个类。