2016-09-19 119 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