2011-08-31 71 views
1

我期待使用jQuery contains通過每幅圖像在頁面上運行,並檢查SRC標記包含了一定的http值某些文本。我將如何使用jQuery或javacript運行src屬性中的文本檢查。我有什麼,我嘗試下面的概述:檢查是否IMG SRC的包含與jQuery

$('img').each(function(i){ 
    var img = $(this), 
     imgSrc = img.attr('src'), 
     siteURL = "http://url.com"; 

    if(!imgSrc.contains(siteURL)){ 
    imgSrc = siteURL + imgSrc; 
    } 
});       

我有一種感覺,正則表達式可能是要走的路就是不知道怎麼肯定。

+0

只是讓你知道[$ .contains](http://api.jquery.com/jQuery.contains/)不適用於字符串,它適用於元素。您檢查一個元素是否包含在另一個元素中,而不是如果一個字符串包含在另一個元素中 – Chad

+0

謝謝@Chad,是的,我意識到我發佈了錯誤的鏈接。 – jeffreynolte

回答

3
// find all img's without the siteURL, and add it 
$('img:not([src^="http://url.com"])').each(function(i){ 
    this.src = siteURL + this.src; 
}); 
+0

這最終做的伎倆,謝謝。看起來最有效和簡單的方法來完成任務。 – jeffreynolte

+0

這可能是simplier,但我認爲不把在選擇的負荷,而不是使用@Nicola Peluchetti提到的方法(除了刪除'變種IMG = $(本),IMGSRC = img.attr(「SRC」)'和用'var imgSrc = this.src'替換它以獲得更高效的解決方案)。 – Chad

6

我會做(使用indexOf):

$('img').each(function(i){ 
     var imgSrc = this.src; 
     var siteURL = "http://url.com"; 

    if(imgSrc.indexOf(siteURL) === -1){ 
    imgSrc = siteURL + imgSrc; 
    } 
}); 
+0

1我想改變'變種IMG = $(這),IMGSRC = img.attr( 'SRC')''到變種IMGSRC = this.src'沒有必要翹曲它在一個jQuery對象。 – Chad

+0

是的,你是對的我更新了我的答案,包括你的建議。 –

+0

FYI你引入一個全球性的在這裏(SITEURL) – ken

1

你要搜索的字符串imgSrc如果它有它的siteURL字符串。

indexOf方法返回子串的主串內的位置。如果它沒有找到,則返回-1

if (imgSrc.indexOf(siteURL) == -1) { 
    imgSrc = siteURL + imgSrc; 
} 
4

爲什麼不能簡單地做一個選擇這樣做呢?

$('img[src*="http://url.com"]') 

這應該只選擇src標記中具有該文本的元素,而不必編寫自定義邏輯。