基于可变长度使文本单数或复数

时间:2017-02-06 20:41:06

标签: javascript jquery

我试图根据templateCount的值使文本成为单数或复数。如果templateCount的值为1,那么我只想要'模板'来表示,但如果templateCount是复数,我希望它说“模板已选中”。

我的代码出了什么问题?

$('#templateCount').html(templateCount + " Templates Selected" + templateCount.length == 1 ? "" : "s");

5 个答案:

答案 0 :(得分:4)

你确定你想到了吗?你有字符串"Templates selected",并且有条件地将s附加到 end (这将使其成为"Templates Selecteds")。

这样做:

$('#templateCount').html(templateCount + 
    " Template" + 
    (templateCount === 1 ? "" : "s") +
    " Selected");

答案 1 :(得分:2)

我不确定你的意思是,如果templateCount == 1或者templateCount的长度是1,你想在结尾放一个's'。这可能是两个非常不同的东西。

如果你想要它基于变量== 1,那么我会尝试:

var templateCount;
// set it somewhere
var plural = templateCount === 1 ? "" : "s";
$('#templateCount').html(templateCount + " Template"+plural+ " Selected");

如果是您实际使用的长度,请将复数更改为

var plural = templateCount.length > 1 ? "" : "s";

答案 2 :(得分:2)

试试这个

function makeStatement(templateCount) {
  return templateCount + " Template" + (templateCount == 1 ? "" : "s") +" Selected";
}

console.log(makeStatement(1));
console.log(makeStatement(2));

在你的情况下

$('#templateCount').html(templateCount + " Template" + (templateCount == 1 ? "" : "s") + " Selected");

答案 3 :(得分:1)

也许我正在读错你的问题,但是你不需要改变代码看起来像这样吗?

$('#templateCount').html(templateCount + " Template" + (templateCount.length == 1 ? "" : "s") + " Selected");

答案 4 :(得分:0)

喜欢这个吗?



var templateCount = [ 1 ];
function test() {
  var tmp = templateCount.length == 1 ? 1 : "Templates Selected";
  $("#test").val(tmp);
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="test">

<button onclick="test()">Test</button>
&#13;
&#13;
&#13;