1

ここSOで他の投稿を見ようとしてきましたが、コード例に頭を悩ませることはできません. 私はまだ jQuery/JavaScript を学習中であることに注意してください。これに関するヘルプは大歓迎です。

サイトのさまざまなページにこれらの画像があるとします。

ページ1:<img alt="..." src="images/ss-project-name.png">

ページ2:<img alt="..." src="images/ss-another-project-name.png">

ページ 3:<img alt="..." src="images/ss-yet-another-project-name.png">

サイトのあちこちにこれらの画像がたくさんあり、マークアップを編集することは不可能であり、class="screenshot"それらすべてに を追加する必要があります。

だから私はこのようなものになるだろう:

<img alt="..." src="images/ss-project-name.png" class="screenshot">

ここに私が試したいくつかのスクリプトがありますが、もちろん機能しませんが、私が達成しようとしていることのアイデアを与えることができます:

#1を試してください:

$('img').each(function(){
    if ($(this).attr('src') == "ss-"){
        $(this).addClass('screenshot');
    }
});

#2を試してください:

$("img:has([src^='ss-'])").addClass('screenshot');

これに関するヘルプは大歓迎です。

ありがとう。

4

3 に答える 3

1

このセレクターを試すことができます:$('img[src*="images/ss-"]').addClass('screenshot');

で始まる画像ディレクトリからすべてのファイルを検索しますss-images/セレクターの一部として追加すると、などのファイルの一致が回避され<img src="media/miss-you-so-much.png" />ます。

于 2013-02-27T23:29:05.227 に答える
1

あなたは近いです、これはうまくいくはずです:

$("img[src*='ss-']").addClass('screenshot');

最初の試行がうまくいかなかった理由は、src属性ss-がその部分文字列を含むためのものではないことをテストしているためです。jQueryドキュメント:has()が言うように、2回目の試行は機能しませんでした:

指定されたセレクターに一致する要素を少なくとも 1 つ含む要素を選択します。

また、で始まる要素を[src^='ss-']探すため、あなたの場合は文字列で始まりますsrc ss-images/

于 2013-02-27T23:20:15.997 に答える
0

このコードを試してください

 $('img').each(function(){
        var src = $(this).attr('src'); 
        if (src.substr(0,2) == "ss-"){
            $(this).addClass('screenshot');
        }
    });
于 2013-02-27T23:22:19.380 に答える