想写一个判断a标签里的链接是否为png,jpg图片链接来给a标签加rel属性。

juxiaodong
  • 11

太复杂的jq判断不会写,只是写点简单的jq。

$(".post").find("a").each(function () {
    if ($(this).attr("rel") !== "external") {

        $(this).attr('rel', 'external');
    }
});

上面只是给所有的a标签加rel属性。但是我想要的是判断a标签里的链接如果为png或者jpg结尾的话就不加rel。如果是一般的链接就加rel。无奈这么复杂的判断a标签里的链接写法不知道怎么去写。

不知道有没有大神写一下呢?

回复
阅读 1.3k
2 个回答
const regx = /\.(jpe?g|png)(?=\?|$)/i; // 正则表达式
$('.post').find('a').each(function(){
    const href = $(this).attr('href');
    const isImg = regx.test(href); // 正则表达式与目标字符串是否匹配
    if (!isImg) {
        $(this).attr('rel', 'external');
    }
});

已经解决了,多谢群里的大神。也谢谢评论里提供正则表达式的大神们~

/\.(jpeg|png)(?=\?|$)/

test case :

.jpeg
.png
.png?size
.jpeg?size
.jpe
.pn
宣传栏