确保src属性具有http:

时间:2014-02-24 15:59:27

标签: jquery attributes wikipedia src

我正在使用这个jquery脚本来导入维基百科文章的部分内容,但是我遇到了一个问题,当这个脚本组合了一个图像标记时,它会删除" http:" (或者更确切地说,它首先出现在那里?)来自src属性。我怎样才能确保每个img标签在src属性的开头都有http:而不添加另一个如果它已经存在?

以下是我正在使用的内容:

https://gist.github.com/steren/704540

具体来说,这是添加图像的原因(但不包括" http:"):

//get images of right side table
var rightTableImages = content.find('table a.image img');        
//append first image to main container  
wikiContainer.append($(rightTableImages).first().removeAttr('srcset').removeAttr('height').removeAttr('width').addClass("imageForArticle").wrap('<div class="wikipediaLogo"></div>').parent());

我尝试通过在上面添加.addClass("imageForArticle")为图片添加一个类,然后尝试了这个:

$('. imageForArticle').attr('src', function(index, src) {
return 'http:' + src;
});

但是,当我这样做时,如果一个页面中有多篇文章,当我重新加载页面时,它有时会添加一个额外的http:

2 个答案:

答案 0 :(得分:2)

尝试

$('. imageForArticle').attr('src', function (index, src) {
    return (src.indexOf('http') == 0) ? src : 'http:' + src;
});

如果src.indexOf('http') == 0以http开头而不是返回,则添加http:

<小时/> 或

$('. imageForArticle').not('[src^="http"]').attr('src', function (index, src) {
    return 'http:' + src;
});

src

$('. imageForArticle').not('[src^="http"]')排除结果

答案 1 :(得分:0)

试试这个:

$('. imageForArticle').attr('src', function (index, src) {
    return (src.indexOf('http') < 0) ? src : 'http:' + src;
});