作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 jQuery 的初学者,想找点乐趣。我正在尝试制作一个按钮,单击该按钮将更改页面的背景,并更改按钮的文本。我只需要两种场景: - 如果按钮显示“1”,则将按钮更改为“2”,并将背景更改为黑色; - 如果按钮显示“2”,则将按钮更改为“1”,并将背景更改为白色;
我的代码适用于第一次点击,但您不能点击多次。
我做错了什么?感谢您抽出时间。
这是我的 HTML
<body>
<button id="lumiere">1</button>
</body>
这是我的脚本
$(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')
}
}
);
}
);
最佳答案
你的 if 语句将始终返回 true,因为即使你的查询没有返回任何元素,它仍然会给你一个 jQuery 对象。尝试检查“length”属性:
$(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');
}
});
});
关于jquery - If/else 不适用于 jQuery 中的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17368110/
我是一名优秀的程序员,十分优秀!