2017-11-09 12 views
0

以下のコードは、テキスト行全体を書き換えてHTML要素内のテキストを正しく変更します。これはtextContentを使用して達成されますが、innerHTMLもこれを行うことができます。要素内のテキストコンテンツまたはHTMLの一部だけを編集することはできますか?

document.querySelectorAll(".box")[0].textContent = 'The number of dollars in my bank account is $1';
body { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
\t 
 
.box { 
 
    padding: 10px; 
 
    font-size: 2rem; 
 
    color: white; 
 
    font-family: sans-serif; 
 
    background-color: blue; 
 
}
<div class="box">The number of dollars in my bank account is ?</div>

しかし、行全体を書き換えることなく、テキストの一部だけを変更する方法はありますか?これはおそらく正確ではなく、.innerHTML [5、10]のようなもので、特にターゲットを絞った文字だけを変更します。

エレメント内のテキストやタグを変更するのにJavascriptを使用すると、セクション全体が常に書き換えられます。これはユーザーには見えないかもしれませんが、常にシーンの後ろに何が起こるのでしょうか?本当にありがとう!

document.getElementById('amount').innerHTML = '5$'; 

だからあなたのウェブサイトが表示されます:

+0

Umm ... AFAIK、正規表現を使用できる点を除いては、そういうものはありません。 –

+3

@PraveenKumar正規表現とHTMLが[互いのために作られている](https://stackoverflow.com/a/1732454/5053002):p –

+1

[substring]を使用しない理由(https://developer.mozilla.org/ en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring)を入力します。 –

答えて

1

はるかに優れたアプローチは、その後、あなたが簡単にjsでちょうど量を変更することができます

<div class="box">The number of dollars in my bank account is <span id='amount'></span>.</div> 

ような何かにあなたのHTMLを変更することであろう私の銀行口座のドルは5 $です。

あなたのアプローチに固執したいのであれば、コンテンツ全体を文字列に保存してから、部分文字列、フィルター、または正規表現のいずれかで検索を行うだけです。次に、必要な要素を置き換えて、文字列をHTMLに戻します。

+0

あなたのソリューションは私のテストプログラムの問題を完全に解決しました。ありがとう!しかし私が実際に取り組んでいるプロジェクトはテキストフォーマッタです。これは、ユーザーが入力するテキスト入力ライブをフォーマットします。 'input'ボックスで値を読み込み、値をフォーマットし、' input'ボックスの古い値を新しいフォーマット値で上書きします。これは技術的には機能しますが、私はより良い方法があることを望んでいました。しかし、より良い方法がないことを知ることは、大きな飛躍です。少なくとも私は正しい道にいると知っています。ありがとう! – DR01D

+0

私が言ったように、文字列内の入力の値を手作業で読み取って、それを何らかの方法で処理し、完了したらそれを戻すことだけが他の方法です。 –

+0

ええ、それは私が今やっていることです。私がそれを絞り込むのを助けてくれてありがとう! – DR01D

1

ドルの金額を表示するには、ネストされたスパンタグを使用します。次に、スパンのテキストを更新するだけです。文全体が必要なときは、div.boxのtextContentにアクセスするだけです。連結されたすべてのネストされた要素のtextContentを返します。

関連する問題