質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

4894閲覧

特定の画像名がある箇所にのみ、クラスを付与したい

scoa

総合スコア66

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/11/17 02:15

いつもお世話になっております。

IDのhogeとhugaのliタグの中にある、
「cookie0」という名前の画像があるimgタグにのみ、
「cookie0」というクラスを付与したいのですが、上手くいきません。

HTML

1<ul id="hoge"> 2<li><img src="cookie1.png"></li> 3<li><img src="cookie0.png"></li> 4<li><img src="cookie1.png"></li> 5<li><img src="cookie0.png"></li> 6<li><img src="cookie3.png"></li> 7<li><img src="cookie4.png"></li> 8</ul> 9 10<ul id="huga"> 11<li><img src="cookie0.png"></li> 12<li><img src="cookie5.png"></li> 13<li><img src="cookie1.png"></li> 14<li><img src="cookie0.png"></li> 15<li><img src="cookie3.png"></li> 16<li><img src="cookie5.png"></li> 17</ul> 18 19↓ 下記のようにしたい 20 21<ul id="hoge"> 22<li><img src="cookie1.png"></li> 23<li><img src="cookie0.png" class="cookie0"></li> 24<li><img src="cookie1.png"></li> 25<li><img src="cookie0.png" class="cookie0"></li> 26<li><img src="cookie3.png"></li> 27<li><img src="cookie4.png"></li> 28</ul> 29 30<ul id="huga"> 31<li><img src="cookie0.png" class="cookie0"></li> 32<li><img src="cookie5.png"></li> 33<li><img src="cookie1.png"></li> 34<li><img src="cookie0.png" class="cookie0"></li> 35<li><img src="cookie3.png"></li> 36<li><img src="cookie5.png"></li> 37</ul>

var src = $("#hoge, #huga).find('img').attr('src'); で画像名を取得して、
eachで回せばできるのでは…とやってみたのですが上手くできず…。

恐れ入りますが、ご教示の程よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

とりあえず完全一致で。

JavaScript

1$( '#hoge, #huga' ).find( 'img[src="cookie0.png"]' ).addClass( 'cookie0' ); 2```**動くサンプル:**[https://jsfiddle.net/y8crao5L/](https://jsfiddle.net/y8crao5L/)

投稿2016/11/17 02:26

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

やり方は色々ありますが、
使おうとしていたeachを使用した場合は、以下みたいなコードになります。

今回はsubstr内で末尾4文字を削除と安直なことをしていますが、
末尾から数えて「.」以降の文字列を取得とかやるとベストだと思います。

JavaScript

1$('#hoge img').each(function() { 2 var self = this; 3 var className = $(self).attr('src'); 4 className = className.substr(0, className.length - 4); 5 6 $(self).addClass(className); 7});

###追記
失礼しました。cookie0だけでしたね。。

JavaScript

1$('#hoge').find('img[src="cookie0.png"]').each(function() { 2 var self = this; 3 var className = $(self).attr('src'); 4 className = className.substr(0, className.length - 4); 5 6 $(self).addClass(className); 7});

投稿2016/11/17 02:21

編集2016/11/17 02:42
mukkun

総合スコア882

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

拡張子まで考慮するならこんなかんじです

  • 拡張子はjpg/gif/pngのいずれかとして大文字小文字関係なし
  • ファイル名は大文字小文字を区別します

HTML

1<script> 2$(function(){ 3 $('#hoge,#huga').find('img').filter(function(){ 4 return $(this).attr('src').match(/.+\.(jpg|png|gif)$/i)[0].match(/^cookie0\.[^\/\.]+$/); 5 }).addClass('cookie0'); 6}); 7</script> 8 9 10<ul id="hoge"> 11<li><img src="testcookie0.png">testcookie0.png</li> 12<li><img src="cookie00.png">cookie00.png</li> 13<li><img src="Cookie0.png">Cookie0.png</li> 14<li><img src="cookie0.png">cookie0.png</li> 15<li><img src="cookie0.PNG">cookie0.PNG</li> 16<li><img src="cookie0.Jpg">cookie0.Jpg</li> 17</ul>

投稿2016/11/17 04:02

yambejp

総合スコア114833

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問