2016-09-19 49 views
0

私は非常にjavascriptに新しく、イベントリスナーに匿名関数をアタッチしようとしています。関数の機能は、最初の要素をマウスオーバーすると、最初の要素内のテキストの長さに応じて2番目の要素にメッセージが表示されるということです。添付のイベントリスナーが機能しない

しかし、マウスを最初の要素に重ねると、何も起こりません。私はJavaScriptが初めてのので、何が間違っているのか分かりません。

function checkLength(event, minLength){ 
 
     var el, elementTwo; 
 
     el = event.target; 
 
     elementTwo = el.nextSibling; 
 
     
 
     if(el.value.length < minLength){ 
 
      elementTwo.innerHTML = "not enough"; 
 
     } else { 
 
      elementTwo.innerHTML = "enough"; 
 
     } 
 
    } 
 
    
 
    var elUserName = document.getElementById("one"); 
 
    elUserName.addEventListener("mouseover", function(event){ 
 
     checkLength(event, 5); 
 
    }, false);
<div> 
 
     <div id="one">Bob</div> 
 
     <div id="two"></div> 
 
    </div>

答えて

2

あなたがtextContentを使用する要素のtextにアクセスします。 valueは入力用です。

また、次の兄弟ノードだけでなく、次の要素兄弟を選択する必要があります。

function checkLength(event, minLength){ 
 
     var el, elementTwo; 
 
     el = event.target; 
 
     elementTwo = el.nextElementSibling; 
 
     
 
     if(el.textContent.length < minLength){ 
 
      elementTwo.innerHTML = "not enough"; 
 
     } else { 
 
      elementTwo.innerHTML = "enough"; 
 
     } 
 
    } 
 
    
 
    var elUserName = document.getElementById("one"); 
 
    elUserName.addEventListener("mouseover", function(event){ 
 
     checkLength(event, 5); 
 
    }, false);
<div> 
 
     <div id="one">Bob</div> 
 
     <div id="two"></div> 
 
    </div>

+0

手伝いのためにありがとうございました!私は尋ねるかもしれません、あなたはどのように答えを知りましたか?このような問題に直面した次回は、私自身で解決できることを願っています。あなたの助けをもう一度ありがとう! – Thor

+2

さて、私は自分自身の経験から解決しましたが、私が問題に直面しているときに、私はアプリケーションをデバッグする前にそれらを見たり対処したりしていませんでした。問題の答えを見つけることは、通常、最も難しいことではなく、実際の問題を見つけることは通常最も困難です。 – MinusFour

+0

あなたの知恵を共有してくれてありがとう、また助けてくれてありがとう!心から感謝する。 – Thor

関連する問題