2017-12-14 1 views
0

現在、JavaScriptを使用してDOMイベント "onchange"の助けを借りて要素の色を変更しようとしています。<select>を使用してヘッダーの色を変更する際の問題 - 要素

function changeColor() { 
 
    var myHeader = document.getElementById("header"); 
 
    var mySelect = document.getElementById("select"); 
 

 
    header.style.color = mySelect.value; 
 
}
<h4 id="header">This is my header!</h4> 
 

 
<form> 
 

 
<select id="select" name="select" onchange="changeColor()"> 
 
    <option value="black">Black</option> 
 
    <option value="red">Red</option> 
 
    <option value="green">Green</option> 
 
    <option value="blue">Blue</option> 
 
    <option value="yellow">Yellow</option> 
 
</select> 
 

 
</form>

私はこの問題は、関数の内部でコードの最後の行にあると思います。友達を助けてください!

+1

設定しようとしている 'header'変数はどこで定義されていますか? – David

+0

コードをコピーしてcodepenに貼り付けても問題はありません。ヘッダーフィールドの色が変更されました。 – Knitesh

+0

'myHeader.style.color'に変更してください。正式な入力ミスを閉じるための投票。 –

答えて

1

あなたのコードが

function changeColor() { 
 
    var myHeader = document.getElementById("header"); 
 
    var mySelect = document.getElementById("select"); 
 
    header.style.color = mySelect.value; 
 
}
<h4 id="header">This is my header!</h4> 
 
<form> 
 

 
<select id="select" name="select" onchange="changeColor()"> 
 
    <option value="black">Black</option> 
 
    <option value="red">Red</option> 
 
    <option value="green">Green</option> 
 
    <option value="blue">Blue</option> 
 
    <option value="yellow">Yellow</option> 
 
</select> 
 

 
</form>

を働いているしかし、あなたは以下のように適切なコードを使用する必要がありますが、使用myHeader代わりheader

function changeColor() { 
 
    var myHeader = document.getElementById("header"); 
 
    var mySelect = document.getElementById("select"); 
 
    myHeader.style.color = mySelect.value; 
 
}
<h4 id="header">This is my header!</h4> 
 
<form> 
 

 
<select id="select" name="select" onchange="changeColor()"> 
 
    <option value="black">Black</option> 
 
    <option value="red">Red</option> 
 
    <option value="green">Green</option> 
 
    <option value="blue">Blue</option> 
 
    <option value="yellow">Yellow</option> 
 
</select> 
 

 
</form>

+0

最初のコードスニペットを削除し、正しいコードを表示します。人々は、文脈を読まなくても、回答に表示される最初の例をコピーするだけです。 –

+0

私のコードは完全に機能しているようですが、なんらかの理由でJsfiddleでは動作しません。混乱しました。これはCodepenと通常のテキストエディタで動作します。あなたの答えをありがとう。 –

関連する問題