无法在文档加载时触发功能

时间:2017-04-06 12:13:00

标签: javascript jquery

HTML:

<input class="test removeMe" type="text">

jQuery的:

$(function () {
    function isEmpty() {
        if (!$(".test").val()) {
            $(this).removeClass("removeMe");
        } else {
            $(this).addClass("addMe");
        }
    }
    isEmpty();
});

请告诉我,我错在哪里?

我希望isEmpty在加载/重新加载时触发并检查输入是否有值。如果它没有,它将删除removeMe类。如果它确实有一些值,它会向它添加addMe类。

控制台是空的,我无法弄清楚为什么这不能正常工作。

更新

非常奇怪......如果它是空的,它会相对发出相应的警报,但不会添加/删除类。 https://jsfiddle.net/37tt3x72/1/

更新02

确实有效,但不完全...... https://jsfiddle.net/37tt3x72/2/ 如果this替换目标元素,那么this就不起作用了。所以问题仍然存在:为什么crossOrigin不在这里工作?

3 个答案:

答案 0 :(得分:0)

&#13;
&#13;
$(function () {
    function isEmpty() {
        if (!$(".test").val()) {
          alert("Empty");
            $(this).removeClass("removeMe");
        } else {       
         alert("not Empty");
            $(this).addClass("addMe");
        }
    }
    isEmpty();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="test removeMe" type="text">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在就绪功能上从文档调用功能。

function isEmpty() {
    if (!$(".test").val()) {
        $(this).removeClass("removeMe");
    } else {
        $(this).addClass("addMe");
    }
}

$(document).ready(function(){
  isEmpty();
});

答案 2 :(得分:0)

Rory McCrossan 在此提供了精彩且内容丰富的答案:Why "$(this)" doesn't work in the following example

并且 adeneo 指出了关于this如何运作的另一个问题/答案:How does the "this" keyword work?