jquery每个regexp href同时检查一些字符串

时间:2014-08-12 18:00:36

标签: javascript jquery html regex href

人!

我有这个:

$('.download_video a[href*="flv"]').each(function() {

        $( this ).addClass('videoCl');

});

我想在一个代码行中执行许多检查,如:

$('.download_video a[href*="flv|mpeg|ogg"]').each(function() {

        $( this ).addClass('videoCl');

});

我意识到flv | mpeg | ogg无法正常工作。我认为这是一个细节问题......

有人可以帮助我吗?

很多!

2 个答案:

答案 0 :(得分:3)

您不能在单个选择器中放置多个属性选择器。但是,您可以使用逗号组合多个选择器:

$('.download_video')
    .find('a[href*=flv], a[href*=mpeg] a[href*=ogg]')
    .addClass('videoCl');

请注意,如果您对每个元素执行相同的操作,则不需要使用.each; jQuery会自动映射整个集合。

答案 1 :(得分:1)

尝试

    $.fn.attrs = function () {
        var args = arguments[0];
        var elem = $(this);
        var map = $.map(arguments[1], function (v, k) {
            return ($("[" + args + "*=" + v + "]").is(elem) 
                    ? elem[0].nodeName.toLowerCase() 
                      + "[" + args + "*=" + v + "]" 
                    : null);
        });
        return $(map.toString());
    };

$(".download_video a")
.attrs("href", ["mpeg", "flv", "ogg"]).addClass("videoCl");

jsfiddle http://jsfiddle.net/guest271314/834q1awc/