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

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

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

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

jQuery

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

Q&A

解決済

1回答

3135閲覧

【jQuery】チェックボックスの後のテキストを置換する方法

umauman

総合スコア57

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2017/02/04 06:59

###実現したいこと
下記のチェックボックスの後ろのテキストの頭に追加している「01-」「02-」「03-」を削除したく思っています。

html

1<label class="select"><input name="" type="checkbox">01-りんご</label> 2<label class="select"><input name="" type="checkbox">02-バナナ</label> 3<label class="select"><input name="" type="checkbox">03-みかん</label>

下記ソースで置換をすると「01-」「02-」「03-」は消えるもののチェックボックスも消えてしまいます。

javascript

1$('label.select').each(function(){ 2 var txt = $(this).text(); 3 $(this).text( 4 txt.replace(/\d{2}-/g,"") 5 ); 6});

チェックボックスは残しつつ、「01-」「02-」「03-」のみ削除する方法がありましたらご教授いただけないでしょうか。

###補足情報
例えば、「01-りんご」「02-バナナ」「03-みかん」の部分を<span>等で囲むことができればいいのですが、CMSの管理画面のソースのため変更するのが難しい状況です。
「01-」「02-」「03-」は並び順を制御するために便宜的に付けています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんな感じで出来そうです。

JavaScript

1$( 'label.select' ).each( function() { 2 var txt = this.childNodes.item( 1 ).nodeValue; 3 this.childNodes.item( 1 ).nodeValue = txt.replace( /\d{2}-/g, "" ); 4} ); 5```**動くサンプル:**[https://jsfiddle.net/mxojmzzj/](https://jsfiddle.net/mxojmzzj/) 6 7--- 8 9【二章第三回 基本的な操作とテキストノード — JavaScript初級者から中級者になろう — uhyohyo.net】 10[http://uhyohyo.net/javascript/2_3.html](http://uhyohyo.net/javascript/2_3.html)

投稿2017/02/04 07:11

kei344

総合スコア69407

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

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

umauman

2017/02/04 08:24

早速ありがとうございます。サンプルや参考サイトも非常に助かります。本当に感謝です! こちらに記述変更をしてみたところ、なぜかCMS管理画面上でうまく適用されず、色々検証をしてみたところ、途中で改行やインデント等が入ると動作しないことが分かりました。 ・うまく動作する <label class="select"><input name="" type="checkbox">01---りんご</label> ・動作しない ※CMS管理画面 <label class="select"> <input name="" type="checkbox">01---りんご</label> もう少し、教えていただいたページを読んでみることにします。
kei344

2017/02/04 08:39

this.childNodes.item( 1 ).nodeValue の「1」の部分を23456と変えていけばどのノードかが特定できるとは思いますよ。 for ( var i; i < this.childNodes.length; i++ ) {} で this.childNodes.item( i ).nodeValue の中身を確認して合致するものを置換するようにする事も出来ると思います。
umauman

2017/02/04 10:19

順に数を増やしていったら、合致しました。ありがとうございました! かなりの素人な質問で恐縮ですが、下記の記述方法のみ最後に教えていただくことはできないでしょうか? >for ( var i; i < this.childNodes.length; i++ ) {} >で this.childNodes.item( i ).nodeValue の中身を確認して合致するものを置換するようにする事も >出来ると思います。 下記のような感じで四苦八苦してるのですが、中身の確認の方法がわからず…(かなり勘違いしているような気がしてますが) $( 'label.select').each( function() { this.childNodes.item( i ).nodeValue for ( var i; i < this.childNodes.length; i++ ) { console.log(i); } } );
kei344

2017/02/04 11:11

すみません、コメントでミスがあったので下記でお願いします。 $( 'label.select').each( function() { for ( var i = 0; i < this.childNodes.length; i++ ) { // 「= 0」が抜けていました、すみません console.log(this.childNodes.item( i ).nodeValue); } } );
umauman

2017/02/04 11:29

ご返信ありがとうございます。 教えていただいた記述で無事表示できました。 何度も質問してしまい申し訳ありませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問