2017-05-31 22 views
1

値を変更するためにテキストフィールドを作成しましたが、これは1つの部分でうまくいくようです。変更された値が表示されない

Voornaam: <h3 id="title1">Test</h3> 
     <input type="text" id="myTextField1"/> 
     <input type="submit" id="byBtn" value="Change" onclick="change1()"/><br/> 

これはこのjavascript関数にリンクされている:

function change1(){ 
    var myNewTitle = document.getElementById('myTextField1').value; 
    if(myNewTitle.length==0){ 
     alert('Write Some real Text please.'); 
    return; 
    } 
    var title = document.getElementById('title1'); 
    title.innerHTML = myNewTitle; 
} 

そして、これは何の問題もなく動作し、私の変更値を示し、しかし、私は私のhtmlコードのどこかに低く、その同じ値を表示したいとき変更された値は表示されません。ここで

が変更された値が表示されないコードの一部です:

<section class="bg-green"> 
     <div class="block left wide"> 
      <article> 
       <h1>testfile<br/><span contenteditable="true" data-id="school-name"><?php echo $schoolName; ?></span></h1> 
       <br/> 
       <p> 
        <strong>Geachte <span data-id="name"><?php echo $salutation; ?> <?php echo $lastName; ?></span></strong>, 
        <p id="title1">Test.</p> 
       </p> 

それが表示されるはずですが、一部

<p id="title1">Test.</p> 

誰もが正しい方向に私を指すもらえです?

答えて

1

あなたにid「TITLE1」を複数回使用しているようです:あなたは1つのID回以上

ソリューションを使用する場合 また、無効なHTMLです。 document.getElementByIdは1つだけを見つけます(私が間違っていなければ最初のものです)。

クラスを使用し、ここでgetElementByClassName

var titles = document.getElementsByClassName('title1'); 
    Array.prototype.forEach.call(titles,title => { 
    title.innerHTML = myNewTitle; 
    }); 

で見つかった要素を反復処理するには、私の解決策の作業jsfiddleです。

+0

残念なことにページが完全に翻訳されていないので、例を示すことができますか? –

+0

@KevinBosmanエラーを再現するjsfiddleを提供できるのであれば、 – Strernd

+0

それは完全には機能していませんが、あなたはこれからアイデアを得ることができるはずです。https://jsfiddle.net/maukne4z/ –

1

あなたはID = H3タグの最初の使用に表示されます、同じIDを持つ2つのDOM要素= TITLE1

<h3 id="title1">Test</h3> 

<p id="title1">Test.</p> 

入力したテキストを持っています。

Voornaam: <h3 id="title1">Test</h3> 
    <input type="text" id="myTextField1"/> 
    <input type="submit" id="byBtn" value="Change" onclick="change1()"/><br/> 

function change1(){ 
    var myNewTitle = document.getElementById('myTextField1').value; 
    if(myNewTitle.length==0){ 
    alert('Write Some real Text please.'); 
    return; 
    } 
    var title = document.getElementById('change1result'); 
    title.innerHTML = myNewTitle; 
} 

<section class="bg-green"> 
    <div class="block left wide"> 
     <article> 
      <h1>testfile<br/><span contenteditable="true" data-id="school-name"><?php echo $schoolName; ?></span></h1> 
      <br/> 
      <p> 
       <strong>Geachte <span data-id="name"><?php echo $salutation; ?> <?php echo $lastName; ?></span></strong>, 
       <p id="change1result">Test.</p> 
      </p> 
+0

私はこれが起こることを意図していなかったことを知らなかった。代わりに何をすることをお勧めしますか? –

+0

p要素のidの名前を別の値に変更するだけです。そのIDにバインドされたCSSがある場合は、セレクタをいくつかのクラスに変更し、そのクラスを両方の要素(pとh3)に変更してください。 スタイリングにクラスを使用すること(または、 )とJSバインディングのID。私はIDがアプリケーション全体で一意であることを確認するために使用されていますので、ビュー名またはコンポーネント名と一意の要素ID(例:resultOfChange1)の連結 –

+0

change1も関数の名前ではありません。文書やコメントの必要性を最小限に抑えるために自己記述名を使うべきです –

関連する問題