附加事件监听器不工作

时间:2016-09-19 01:55:48

标签: javascript html events javascript-events mouseevent

我是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>

1 个答案:

答案 0 :(得分:2)

要访问您使用text元素的textContentvalue用于输入。

此外,您需要选择下一个元素兄弟,而不仅仅是下一个兄弟节点。

&#13;
&#13;
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);
&#13;
<div>
        <div id="one">Bob</div>
        <div id="two"></div>
    </div>
&#13;
&#13;
&#13;