1

以前の質問からいくつかのコードを改良したいと思います:

// the new base url
var base = ' https://www.example.co.uk/gp/wine/order?ie=UTF8&asin=';
var links  = document.getElementsByTagName('a');

for(var i = 0;i < links.length;i++){
    // check each link for the 'asin' value
    var result = /asin=([\d\w]+)/.exec(links[i].getAttribute('href'));
    if(result){
        // make a new url using the 'base' and the 'asin' value
        links[i].setAttribute('href', base+result[1]);
    }
}

さて、すべてのリンクに作用する代わりに、画像からのリンクだけを見るようにできますか?

ここに、私が何を意味するかを示す HTML スニペットを示します。

<a href="/shop/product?ie=UTF8&amp;asin=Z00FDLN878&amp;tab=UK_Default" target="_blank"><img width="125" height="125" border="0" src="http://ecx.images-amazon.com/images/I/01W9a7gwosL.jpg" alt="43453"></a>

それは画像リンクです - 私はそれに基づいて行動したいと思っています。

不可能?

document.getElementsByTagName('a')テキスト リンクと画像リンクの違いがわからないため、これはコードでは実際には不可能であるというのが私の直感です。

4

7 に答える 7

0

リンク コレクションがあり、リンクに画像の子ノードがあるかどうかを確認できます。

var link, links = document.links;
var re = /asin=([\d\w]+)/;
for (var i=0, iLen=links.length; i<iLen; i++) {
  link = links[i]

  if (link.getElementsByTagName('img').length && re.test(link.href)) {
    link.href = base + result[1];
  }
}
于 2013-11-27T23:40:48.243 に答える
-1

私の最初の応答は、クエリ Select All を調べてから、クラス名を割り当てて、何をしようとしても影響を受けるすべての a タグを取得することです。ラップトップに到達したら、例を使用してこれを編集します。

于 2013-11-27T23:45:13.447 に答える