如果/不使用jQuery中的click事件

1 jquery if-statement click

我是jQuery的初学者,并试图获得一些乐趣.我正在尝试制作一个按钮,在单击时会更改页面的背景,以及更改按钮的文本.我只需要两种情况: - 如果按钮显示"1",则将按钮更改为"2",将背景更改为黑色; - 如果按钮显示"2",则将按钮更改为"1",将背景更改为白色;

我的代码适用于第一次点击,但您不能多次点击.

我做错了什么?谢谢你的时间.

http://jsfiddle.net/6fRbM/7/

这是我的HTML

<body>
<button id="lumiere">1</button>
</body>
Run Code Online (Sandbox Code Playgroud)

这是我的剧本

$(function() {
    $('#lumiere').bind('click', function(event) {
        if ($('#lumiere:contains("1")')) {
            $('body').css('background-color', "black")
            $('#lumiere').html('2')
        }
        else if ($('#lumiere:contains("2")')) {
            $('body').css('background-color', "white")
            $('#lumiere').html('1')
        }
    }
    );
}
);
Run Code Online (Sandbox Code Playgroud)

nde*_*ore 10

你的if语句总是返回true,因为即使你的查询没有返回任何元素,它仍然会给你一个jQuery对象.请尝试检查"长度"属性:

$(function() {
    $('#lumiere').bind('click', function(event) {
        if ($('#lumiere:contains("1")').length) {
            $('body').css('background-color', "black");
            $('#lumiere').html('2');
        }
        else if ($('#lumiere:contains("2")').length) {
            $('body').css('background-color', "white");
            $('#lumiere').html('1');
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

  • @Kolink我只是在回答问题.这不是开始香草与jQuery辩论的地方. (3认同)