2016-08-24 7 views
-1

次の関数は、クリックされた要素のIDの代わりにundefinedを返します。なぜこれをやっているのですか?e.target returned undefined?

// get id of the target element that is clicked on 
getId: function() { 
    var cell = document.getElementById('board'); 
    cell.addEventListener('click', function(e) { 
    return e.target.id; 
    }); 
}, 
+1

「次の関数は未定義を返す "---それは*を返す*? 'getId'関数には' return'が全くありません。 – zerkms

+0

@zerkms、それは "undefined"を返すのでしょうか? JSでは、関数は常に何かを返します。 –

+1

@GerardoFurtado正確な機能OPが何を指しているのかは分かりません(2つあります)、私は推測しません。 – zerkms

答えて

2

あなたgetId()機能だけ

はこのスニペットを考えてみましょう...リスナーを追加し、IDを返さない、それが働いている:

var cell = document.getElementById('board'); 
 
var id = cell.addEventListener('click', function(e) { 
 
    console.log (e.target.id); 
 
});
<body> 
 
    <div id="board"> 
 
    <div id="messageArea">Let's begin! Enter a position below. </div> 
 
    <table> 
 
     <tr> 
 
     <td id="00">00</td><td id="01">01</td><td id="02">02</td><td id="03">03</td><td id="04"04>04</td><td id="05">05</td><td id="06">06</td> 
 
     </tr> 
 
     <tr> 
 
     <td id="10">10</td><td id="11">11</td><td id="12">12</td><td id="13">13</td><td id="14">14</td><td id="15">15</td><td id="16">16</td> 
 
     </tr> 
 
     <tr> 
 
     <td id="20">20</td><td id="21">21</td><td id="22">22</td><td id="23">23</td><td id="24">24</td><td id="25">25</td><td id="26">26</td> 
 
     </tr> 
 
     <tr> 
 
     <td id="30">30</td><td id="31">31</td><td id="32">32</td><td id="33">33</td><td id="34">34</td><td id="35">35</td><td id="36">36</td> 
 
     </tr> 
 
     <tr> 
 
     <td id="40">40</td><td id="41">41</td><td id="42">42</td><td id="43">43</td><td id="44">44</td><td id="45">45</td><td id="46">46</td> 
 
     </tr> 
 

 

 
    </table> 
 

 
    </div> 
 

 
    <form> 
 
    <input type="text" id="guessInput" placeholder="A0"> 
 
    <input type="button" id="fireButton" value="Fire!"> 
 
    </form> 
 

 
</body>

+0

はい、console.logでテストしたところ、動作していたのを見て、混乱していました。しかし、getId()関数でe.target.idをどのように返しますか?私がそれを行うと、「eは定義されていません」というReferenceErrorが返されます。 – Tiramisu

+0

@質問は重複としてマークされました。重複を確認してください。 – zerkms