繁体   English   中英

在开关上更改 if/else

[英]Change if/else on switch

再会! 想在 switch 上更改我的 if\\else 语句。

我有这个工作代码。

$tbody.append([
'<td class="view">' + (row.age === '1' ? '18' : row.age === '2'  ? '18-24' : row.age === '3' ? '25-35' : row.age === '4' ? '35+' : 'any' ) + '</td>',
]);

我试图用这种结构替换它:

        var text= 0;

        switch (row.age) {
          case 0:
            text= "any";
            break;
          case 1:
            text = "18";
            break;
          case 2:
            text = "18-24";
            break;
          case 3:
            text = "25-34";
            break;
          case 3:
            text = "35+";
            break;
        }

$tbody.append([
                '<td class="view">' + text + '</td>',
]);

但它不起作用。 结果总是给0。 有什么想法吗?

如果row.age是一个字符串,那么你就需要把case的值作为stringinteger如果row.age是整数。

switch (row.age) {
          case '0':
            text= "any";
            break;
          case '1':
            text = "18";
            break;
          case '2':
            text = "18-24";
            break;
          case '3':
            text = "25-34";
            break;
          case '3':
            text = "35+";
            break;
        }

根据您的问题, if-else表示row.age是字符串,因此在switch-case块中,您必须将其作为整数进行比较。 因为,像===严格匹配一样切换匹配。

row.age === '1'case 1不同。 第一个是字符串,第二个是 int

尝试在.append()处删除[ , ] ,这会返回错误

NotFoundError: Failed to execute 'appendChild' on 'Node': The new child element is null.

 var row = {}; row.age = 1; var text = ""; switch (row.age) { case 0: text = "any"; break; case 1: text = "18"; break; case 2: text = "18-24"; break; case 3: text = "25-34"; break; case 3: text = "35+"; break; } $("body").append("<span>" + text + "</span>")
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM