我正在尝试获取具有扩展名.svg的所有图像。这有效,但问题是URL中的参数被忽略的图像。
我在想某种外卡如svg?/ *?但我无法弄明白?
谢谢
// SVG images
(function() {
svgImages = function() {
$('img[src$=".svg?/*"]').each(function() {
var $img = $(this);
var $imgID = $img.attr('id');
var $imgClass = $img.attr('class');
var $imgData = $(this).data();
var $imgAlt = $img.attr('alt');
var $imgURL = $img.attr('src');
$.get($imgURL, function(data) {
var $svg = $(data).find('svg');
if (typeof $imgID !== 'undefined') {
$svg = $svg.attr('id', $imgID);
}
if (typeof $imgClass !== 'undefined') {
$svg = $svg.attr('class', $imgClass + ' replaced-svg');
}
if (typeof $imgAlt !== 'undefined') {
$svg = $svg.attr('aria-label', $imgAlt);
}
// Add replaced image data attributes to the new SVG
$.each($imgData, function(key, value) {
$svg = $svg.attr('data-' + key, value);
});
// Check if the viewport is set, if the viewport is not set the SVG wont't scale.
if (!$svg.attr('viewBox') && $svg.attr('height') && $svg.attr('width')) {
$svg.attr('viewBox', '0 0 ' + $svg.attr('height') + ' ' + $svg.attr('width'));
}
$svg = $svg.attr('role', 'img');
// Remove any invalid XML tags as per http://validator.w3.org
$svg = $svg.removeAttr('xmlns:a');
// Replace image with new SVG
$img.replaceWith($svg);
}, 'xml');
});
};
if ($('img[src$=".svg"]').length) {
svgImages();
}
}());
例如,此网址不会发现它是SVG
?- /媒体/图像/标志/ test.svg&安培;散列= 5E5E5D597365C12424C3E7865285E596B3F8BEF0
答案 0 :(得分:4)
我认为您正在寻找 attribute contains 选择器[src*=".svg"]
。
使用$
时,您说您希望src
end with .svg
无法在您的工作中使用情况下。
$('img[src*=".svg"]').each((i, item) => { console.log(item) })

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="abc.svg">
<img src="abc.jpg">
<img src="123.svg">
<img src="abc.png">
<img src="-/media/images/logo/test.svg?&hash=5E5E5D597365C12424C3E7865285E596B3F8BEF0">
&#13;
答案 1 :(得分:0)
确实已经提供了正确答案,$('img [src * =“。svg”]')'$'检查结束。 另一种方法也可以通过获取src值并检查它是否包含“.svg”
来实现 if($('img').prop('src').contains('.svg')).each(idx,item)
{
$(item) // use this object
}