javascript - 如何在 jQuery 中编写三元运算符条件?

标签 javascript jquery ternary

在这个 fiddle 中 http://jsfiddle.net/mjmitche/6nar4/3/ ,例如,如果您将蓝色小框拖入黄色框,那么黑色大框就会变成粉红色。左边的所有 4 个框都可以拖到黑框内的框内。

在 fiddle 的末尾,您会看到将黑框更改为粉红色的代码。

但是,我想让它成为一个三元运算符,这样如果盒子是黑色的,它就会变成粉红色,但如果它已经变成粉红色,那么我希望它变回黑色。

我知道三元组是这样的

x ? y: z

所以我尝试了这个,尽管我知道这可能不对

$("#blackbox").css({'background':'pink'}); ?

    $("#blackbox").css({'background':'black'}); : 

$("#blackbox").css({'background':'pink'}); 

我认为问号之前的第一行引起了问题,那么如何创建 if 语句呢?

最佳答案

我会使用这样的代码:

var oBox = $("#blackbox");
var curClass = oBox.attr("class");
var newClass = (curClass == "bg_black") ? "bg_pink" : "bg_black";
oBox.removeClass().addClass(newClass);

要使其正常工作,您首先必须更改 CSS 并从 #blackbox 声明中删除 background,添加这两个类:

.bg_black { background-color: #000; }
.bg_pink { background-color: pink; }

并将类 bg_black 分配给最初的 blackbox 元素。

更新的 jsFiddle:http://jsfiddle.net/6nar4/17/

在我看来,它比其他答案更具可读性,但当然取决于您的选择。

关于javascript - 如何在 jQuery 中编写三元运算符条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595585/

相关文章:

javascript - 解析 JSON 时出现奇怪的 $.post() AJAX 错误

javascript - 在页面刷新之前, react 内容数据不正确

javascript - 访问 $.ajax 语句内分配的 JSON 时出现问题

javascript - 嵌套三元 JavaScript

java - 识别和转换三元运算符以更正 if 语句

javascript - 如何以特定间隔解析 D3 上的日期

javascript - 如何根据已知值从数字中获取每个n?

JQuery Animate Jumpy 仅在 Safari 中

javascript - 从最高的 div 获取高度并将其应用于其他 div

javascript - JavaScript 三元运算符可以支持 3 个条件吗?