2017-12-11 11 views
0

プラグインによって動的に生成される文字列があり、正規表現で日付の書式を変更しました。修正された文字列を元のHTML要素に戻す

新しい文字列を表すvarはコンソールで正しい書式で表示されますが、これをinnerHTMLに戻しても何も起こりません。

出力が変更されるように、2番目の(再フォーマットされた)日付文字列を.date-startクラスのHTML要素に戻すにはどうすればよいですか?事前に

多くのおかげで、

エミリー

// remove space in string 
 

 
var dateStr = document.querySelector(".date-start").innerHTML; 
 

 
secondDateStr = dateStr.replace(/\sam$/, "am"); 
 

 
dateStr.innerHTML = secondDateStr; 
 

 
console.log(secondDateStr)
<div class="date-start">January 6, 2018 @ 10:00 am</div>

答えて

1

が投稿コードでは、変数に文字列を(HTMLElement.innerHTMLは、文字列のタイプである)を割り当てます。

次にJavaScriptで文字列が自動的にdateStrオブジェクトに新しいプロパティを追加しますので、ここでは、String型のインスタンスにキャストされている何が起こるかdateStr.innerHTMLインチ

代わりに、DOM要素を変数に割り当て、必要に応じて文字列を操作し、要素のinnerHTML属性に新しい値を割り当てます。

ます。また、それは複数の要素を見つけたとき、それは、あなたがdocument.querySelector(".date-start")[0]

// remove space in string 
 

 
var dateEl = document.querySelector(".date-start"); 
 

 
secondDateStr = dateEl.innerHTML.replace(/\sam$/, "am"); 
 

 
dateEl.innerHTML = secondDateStr; 
 

 
console.log(secondDateStr)
<div class="date-start">January 6, 2018 @ 10:00 am</div>
のような特定のものを手に入れたいんコレクションを返す場合、セレクタは、そうでない場合は、単一の要素を返すことを確認したいです

+0

素敵なおかげでマレクフルです。実際の例では、ページに何度も表示されるので、forEachループを.querySelectorAllで使用しますが、例のコードを簡素化したいと考えています。とにかく - それはすべて非常にありがとう! –

関連する問題