0

現在、Flickrコンテンツを表示するグラフィック オーバーレイ アプリケーションを開発しています。

オプトアウトしたユーザーの画像を差し替えたい。

私のhtml構造は次のとおりです。

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

この例でテストする文字列85152114@N00は、href にあります。

href 構造は常に同じです: flickr.com / photos / userID / ImageID

今まで、これはサーバー側で行われていましたが、Web サイトのトラフィックが膨大なため、クライアント側で行う必要がありました。私のjQueryの知識は限られているので、助けを求めています!

4

3 に答える 3

0

みんなありがとう、これがあなたの答えに基づいた私の新しいコードです:

var OptOutArray = ["85152114@N00", "00000000@N00"];

$('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/

于 2012-04-11T10:26:41.173 に答える
0

あなたが何を探しているのか完全にはわかりません。ただし、その文字列を取得する場合は、次のようにすることができます。

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

例: http://jsfiddle.net/jasongennaro/AQw9X/

基本的に、 href 属性を見つけて で分割し、/各部分を という名前の配列に配置しbます。配列内のどの項目を選択するかを確認できるように結果を警告しましたが、そこから必要なことを行うことができます。

于 2012-04-10T02:52:27.733 に答える
0

特定のコードを含むアイテムのページ内のすべての画像をチェックする方法を探している場合は、次のように実行できます。

var optOutstr = "85152114@N00";

$(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 = {"85152114@N00": 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");
   }
});
于 2012-04-10T03:01:32.430 に答える