如果条件在jquery中的动态选项内

时间:2018-10-29 09:56:06

标签: javascript jquery

在AJAX响应中,我正在创建option元素。下面是一个示例:

for (var i = 0; i <= 4; i++) {
  html += '<option value=' + i + '>' + (i == 0) ? '-' : i + '</option>';  
}

它返回一个错误,但是当我使用它时,它工作正常:

for (var i = 0; i <=4; i++) {
  html += '<option value=' + i + '>' + i + '</option>';  
}

if条件在做什么?我要在下拉列表中显示0代替-。请帮助我。

2 个答案:

答案 0 :(得分:5)

问题是因为三元数的段被误解为字符串串联的一部分。要解决此问题,请将整个三元表达式用括号括起来:

for (var i = 0; i < = 4; i++) {
  html += '<option value=' + i + ' >' + (i == 0 ? '-' : i) + '</option>';  
}

答案 1 :(得分:0)

@Rory McCrossan可以解决您的问题。我想补充一点,如果可以针对现代浏览器,那么它将起作用:

for (var i = 0; i < = 4; i++) {
  html += `<option value="${i}">${i == 0 ? '-' : i}</option>`;  
}

请注意,您应该避免创建这样的HTML。请改用document.createElement()