2016-12-04 5 views
-1

bodyタグにjavascriptを書くと、自分のid:sにnullが返されます。 javascriptで要素を作成した場合、body(html)にidを作成しても作成されません。私がJQueryに書き込むと、それが見つかる。しかし、私はそれが私のテストに来る場合は、プレーンなjavascriptでそれを書きたい。それはイライラしている。私はロード時にウィンドウを試して、bodyタグの下にコードを入れましたが、うまくいきませんでした。私はそれが作成されていないと思うので、コードはそれを見つけられないことを理解していますが、例えばHTMLでdivを作成したことを確認するコードを取得するにはどうすればいいですか?いいえJquery - Javascriptは私の身分証明書を見ることができません。

document.getElementById("#btn").addEventListener("click", function() { 
 
    var obj = { 
 
    FirstName: document.getElementBydId("#firstName").value, 
 
    LastName: document.getElementBydId("#lastName").value, 
 
    Address: document.getElementBydId("#address").value, 
 
    Phone: document.getElementBydId("#phone").value, 
 
    Zip: document.getElementBydId("#zip").value, 
 
    }; 
 
    txtToDiv(obj); 
 
}); 
 

 
function txtToDiv(obj) { 
 
    var d = getElementById("#d"); 
 
    d.innerHtml = obj.LastName + " " + obj.FirstName + "<br>" + 
 
    obj.Zip + " " + obj.Address + "<br>" + obj.Phone 
 
};
.container{ margin: auto;background-color: lightgrey;width: 500px;height: 400px;}
<div class="container"> 
 
    Förnamn: <input id="firstName"/> 
 
    Efternamn: <input id="lastName"/><br/> 
 
    Zip: <input id="zip"/> 
 
    adress: <input id="address"/><br/> 
 
    Telefon: <input id="phone"/><br/> 
 
    <button id="btn">Flytta</button> 
 
</div> 
 
<div id="d"></div>

+4

'#'を削除します。 – Xufox

+0

'getElementBydId'この関数はすでにidを探していることを知っています。jqueryのように名前に'# 'を追加する必要はありません。 –

+1

[getElementByIdを使用してvarにHTMLを挿入できません]の複製があります(http://stackoverflow.com/questions/38381181/cannot-insert-html-on-var-using-getelementbyid) – Xufox

答えて

0

document.getElementById("btn").addEventListener("click", function() { 
 
    var obj = { 
 
     FirstName: document.getElementById("firstName").value, 
 
     LastName: document.getElementById("lastName").value, 
 
     Address: document.getElementById("address").value, 
 
     Phone: document.getElementById("phone").value, 
 
     Zip: document.getElementById("zip").value, 
 
    }; 
 
    txtToDiv(obj); 
 
}); 
 

 
function txtToDiv(obj) { 
 
    var d = document.getElementById("d"); 
 
    d.innerHTML = obj.LastName + " " + obj.FirstName + "<br>" + 
 
     obj.Zip + " " + obj.Address + "<br>" + obj.Phone 
 
};
<div class="container"> 
 
    Förnamn: <input id="firstName"/> 
 
    Efternamn: <input id="lastName"/><br/> 
 
    Zip: <input id="zip"/> 
 
    adress: <input id="address"/><br/> 
 
    Telefon: <input id="phone"/><br/> 
 
    <button id="btn">Flytta</button> 
 
</div> 
 
    <div id="d"></div>
0123あなたのコードでかなりの誤植があり

+0

ありがとうございます。私はあなたがそれを解決したと思います。いくつかのスペルミスがあり、#:-) –

+0

@MariaKällströmwheres ups? :) –

+0

私はできません、低rep :-(。 –

-1

はまた、代わりにdocument.getElementByID('myId')を使用

window.onload = function(){ 
    // your code goes here 
} 

であなたのjavascriptのコードをカプセル化することをお勧めし#myId

+1

さらに、複数のハンドラを1つのイベントにアタッチすることができます(後でそれらを削除することもできます)。 '' .addEventListener( 'eventName'、functionName、boolBubbles) 'を使用する方が良い方法です。ドキュメントの負荷イベントではそれほど重要ではありませんが、すべて同じです。 :) – enhzflep

+0

はすでにそれを試みました。それはうまくいきませんでした。しかしおそらくdocument.onload –

+0

@MariaKällström - あなたはウィンドウのonloadイベントにアタッチすることができます。私は以下を使用します: 'window.addEventListener( 'load'、onDocLoaded、false);'関数の後に 'function onDocLoaded(evt){....};'(あなたはイベントの 'on'部分を削除しますonclick - >クリック、onmousemove - > mousemoveなど) – enhzflep

0

は、また、内のすべてのinputsを選択することで、あなたはあなたの人生を容易にすることができます。.. document.getElementById()はすでにそのIDで要素を探しますように必要な一切#ありませんidで要素を選択しますそれらのIDをプロパティ名として使用します。したがって、すべてを何度もハードコードする必要はありません。 txtToDiv関数では、渡されたオブジェクトのプロパティをループすることもできます。

document.getElementById("btn").addEventListener("click", function() { 
 
    var obj = {}; 
 
    Array.prototype.forEach.call(document.querySelectorAll(".container input"), function(e) { 
 
    obj[e.id] = e.value; 
 
    }); 
 
    txtToDiv(obj); 
 
}); 
 

 
function txtToDiv(obj) { 
 
    var d = document.getElementById("d"); 
 
    d.innerHTML = Object.keys(obj).map(function(v) { return obj[v]; }).join(" "); 
 
};
.container{ margin: auto;background-color: lightgrey;width: 500px;height: 400px;}
<div class="container"> 
 
    Förnamn: <input id="firstName"/> 
 
    Efternamn: <input id="lastName"/><br/> 
 
    Zip: <input id="zip"/> 
 
    adress: <input id="address"/><br/> 
 
    Telefon: <input id="phone"/><br/> 
 
    <button id="btn">Flytta</button> 
 
</div> 
 
<div id="d"></div>

関連する問題