2016-09-19 117 views
0

我對JavaScript很陌生,正試圖將匿名函數附加到事件偵聽器。該函數的功能是,當鼠標懸停在第一個元素上時,將在第二個元素中顯示一條消息,具體取決於第一個元素中文本的長度。附加的事件偵聽器不工作

但是,當我將鼠標懸停在第一個元素上時,沒有任何反應。因爲我是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元素的textvalue用於輸入。

此外,您需要選擇下一個元素兄弟,而不僅僅是下一個兄弟節點。

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