图像扩展包括所有参数url

时间:2017-08-30 04:45:41

标签: javascript jquery

我正在尝试获取具有扩展名.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

2 个答案:

答案 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;
&#13;
&#13;

答案 1 :(得分:0)

确实已经提供了正确答案,$('img [src * =“。svg”]')'$'检查结束。 另一种方法也可以通过获取src值并检查它是否包含“.svg”

来实现
    if($('img').prop('src').contains('.svg')).each(idx,item)
    {
    $(item) // use this object 
    }