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

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

新規登録して質問してみよう
ただいま回答率
85.50%
プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

jQuery

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

Q&A

解決済

1回答

737閲覧

カウントダウンタイマーの出力テキストをjQueryを使って一文字ずつ<span></span>で囲みたい

meow__pks

総合スコア5

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

jQuery

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

0グッド

0クリップ

投稿2019/09/01 14:31

編集2019/09/01 14:35

前提・実現したいこと

jQueryのプラグイン『yycountdown』(https://github.com/yyengine/jquery-yycountdown)を利用してカウントダウンタイマーを設置したのですが、
一文字ごとにCSSで枠をつけたいため
このプラグインで自動出力される文字"000日00時間00分00秒"の部分を、

<span>0</span><span>0</span><span>0</span>
<span class="yyc-day"></span>
<span>0</span><span>0</span>
<span class="yyc-hou">時間</span>

のように数字部分を一文字ずつ<span></span>で囲むように出力したいです。

発生している問題・試したこと

https://blanche-toile.com/web/change-text-color-jquery-css
↑こちら記事を参考に、
.yyc-dayに対してchildrenメソッドで要素内の全ての子要素を取得するjQueryを記述しましたが、
反映されませんでした。(HTMLは記述前と同じ出力コードでした。)

JSのエラーメッセージは何も出ていません。

<span class="yyc-day"></span> の自動出力部分を、

<div class="yyc-day">日</div>に変更しても変化はありませんでした。

該当のソースコード

jQuery

1window.onload = function() { 2 $(".yyc-day").children().addBack().contents().each(function(){ 3 if (this.nodeType == 3) { 4 $(this).replaceWith($(this).text().replace(/(\S)/g, "<span>$&</span>")); 5 } 6 }); 7};

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

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

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

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

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

guest

回答1

0

ベストアンサー

カウントダウンが更新されるたび毎回入れ替えないといけないため、

js

1$('親のクラス').on('DOMSubtreeModfied', function() { 2 // span タグを入れ替える処理 3});

のように、DOMSubtreeの更新イベントのなかで、該当処理行う必要がありそうです。

投稿2019/09/01 15:35

unhappychoice

総合スコア1531

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

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

meow__pks

2019/09/01 15:48 編集

ありがとうございます!! 以下の記述で無事反映されましたm(__)m $('.yyc-day').on('DOMSubtreeModified', function() { $('.yyc-day').children().addBack().contents().each(function(){ if (this.nodeType == 3) { $(this).replaceWith($(this).text().replace(/(\S)/g, "<span>$&</span>")); } }); });
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問