jquery
  • flickr
  • 2012-04-10 15 views 0 likes 
    0

    私は現在、Flickrのコンテンツを表示しているgraphic overlay applicationを開発中です。画像のソースをテキスト検出で変更します。

    オプトアウトしたユーザーの画像を置き換えたいとします。

    私のHTML構造は以下の通りです:この例では、試験する

    <ul> 
        <li> 
        <div class="imgbk"> 
         <img src='http://farm6.static.flickr.com/5312/7057785005_2966a34f1f.jpg'/> 
         <a href='http://www.flickr.com/photos/[email protected]/7057785005'>Link</a> 
        </div> 
        </li> 
    </ul> 
    

    文字列がHREFで[email protected]に位置しています。

    hrefの構造は常に同じです:flickr.com /写真/ユーザーID/IMAGEID

    今まで、これはサーバ側で行われましたが、私のウェブサイト上の膨大なトラフィックは、このクライアント側を行うために私を余儀なくされました。私のjQueryの知識は限られているので、私は助けを求めています!

    答えて

    0

    おかげでみんな、ここにあなたの回答に基づいて、私の新しいコードは次のとおりです。ここ

    var OptOutArray = ["[email protected]", "[email protected]"]; 
    
    $('img').each(function() { 
        var matches = $(this).next().attr("href").split('/')[4]; 
        if ($.inArray(matches, OptOutArray) > -1) { 
        $(this).attr("src", "http://core.flickeflu.com/doh.gif"); 
        } 
    });​ 
    

    例:http://jsfiddle.net/jgYs8/

    0

    あなたが探しているものは完全にはわかりません。配列内の各部分を置く、基本的には、href属性を検索し、/でそれを分割http://jsfiddle.net/jasongennaro/AQw9X/

    var a = $('.imgbk a').attr('href'); 
    var b = a.split('/'); 
    alert(b[4]); 
    

    例:あなたは、その文字列を取得したい場合は、次のことを行うことができますbという名前です。私はあなたが選択する配列のどの項目を見ることができるように結果を警告しましたが、そこからあなたが望むものを何でもすることができます。

    0

    あなたが探しているのは、その特定のコードを含むアイテムのページ内のすべての画像をチェックする方法です。このようにすることができます。

    var optOutstr = "[email protected]"; 
    
    $(img).each(function() { 
        if (this.href.match(new RegExp("/" + optOutStr + "/")) { 
         this.href = "whatever you want to replace the URL with"; 
         $(this).prev().attr("src", "whatever you want to replace the image with"); 
        } 
    }); 
    

    あなたはに対してチェックするコードのリスト全体を持っていた場合、コードの全体の束に対してそれをチェックするより効率的な方法があるでしょう。

    var optOutMap = {"[email protected]": true, ....}; 
    
    $(img).each(function() { 
        var matches = this.href.match(/flickr.com\/photos\/([^\/]+)\//); 
        if (matches && matches[1] in optOutMap) { 
         this.href = "whatever you want to replace the URL with"; 
         $(this).prev().attr("src", "whatever you want to replace the image with"); 
        } 
    }); 
    
    関連する問題