Javascript 如何为jQuery.append($(“,{…}”)的每个三元大小写添加多于1个操作?
我正在使用jQuery向select元素添加多个选项元素。根据数据的值,选项的文本以及是否禁用它是不同的。向select元素添加选项元素的顺序应按时间顺序,因为它们是交付选项 理想情况下,我想添加if-else语句,但这不起作用。条件三元运算符确实起作用,但它似乎只适用于每种情况下的单个操作 例如: 特定选项的默认值为“8/1 tussen 14:00-15:00 |€4.95” 如果data.response小于0,则应为“8/1 tussen 14:00-15:00 | Vol”,并且应禁用该选项。否则,应返回该选项的已启用默认值 以下是我目前正在尝试的:Javascript 如何为jQuery.append($(“,{…}”)的每个三元大小写添加多于1个操作?,javascript,jquery,Javascript,Jquery,我正在使用jQuery向select元素添加多个选项元素。根据数据的值,选项的文本以及是否禁用它是不同的。向select元素添加选项元素的顺序应按时间顺序,因为它们是交付选项 理想情况下,我想添加if-else语句,但这不起作用。条件三元运算符确实起作用,但它似乎只适用于每种情况下的单个操作 例如: 特定选项的默认值为“8/1 tussen 14:00-15:00 |€4.95” 如果data.response小于0,则应为“8/1 tussen 14:00-15:00 | Vol”,并且应禁用
$.each(timeSlotsObj, function(key, value) {
var option_date = value.split(" ")[0].replace('/', '-'),
option_slot = value.split(" ")[2];
$.get("http://<REDACTED>/availability/" + selected_retailer_id + "/" + option_date + "/" + option_slot, function(data) {
delivery_time_element.append($("<option/>", {
value: key,
text: data.response < 1 ? (
new_value = value.split(' ')
new_value[4] = 'Vol'
new_value.join(' ')
) : value,
disabled: data.response < 1 ? true : false
}));
});
});
我还可以尝试什么?您应该在每个操作后添加逗号,如下所示:
$.get("http://<REDACTED</availability/" + selected_retailer_id + "/" + option_date + "/" + option_slot, function(data) {
delivery_time_element.append($("<option/>", {
value: key,
text: data.response < 1 ? (
new_value = value.split(' '), // <<<<
new_value[4] = 'Vol', // <<<<
new_value.join(' ')
) : value,
disabled: data.response < 1 ? true : false
}));
});
在这种情况下,括号中最后一个逗号分隔的值将是要分配的值。我强烈建议将该逻辑移到一个单独的函数中
$.get("http://<REDACTED</availability/" + selected_retailer_id + "/" + option_date + "/" + option_slot, function(data) {
var vol = function(val) {
var parts = value.split(' ');
parts[4] = "Vol";
return parts.join(' ');
};
delivery_time_element.append($("<option/>", {
value: key,
text: data.response < 1 ? vol(value) : value,
disabled: data.response < 1 ? true : false
}));
});
这使得代码更可读,更容易理解。逗号最常用于缩略语等来缩短表达式,但它们在实际代码中也有一些用途-就我个人而言,我最常用的用法是i=0,l=arr.length;i@narzero回答自己的问题?@ParthTrivedi不过,回答自己的问题没什么错这是一个简单的语法错误案例,应该关闭。@Parth Trivedi,我在发布问题10秒后就发现了这一点。现在看起来很傻。@Rorymcrossan是的,你是对的,但10秒后:作为提示,从代码中删除所有空格和换行符,除了C的内引号。你会发现这些行需要一个分隔符。空格/NewliNE在javascript中不是分隔符。
$.get("http://<REDACTED</availability/" + selected_retailer_id + "/" + option_date + "/" + option_slot, function(data) {
var vol = function(val) {
var parts = value.split(' ');
parts[4] = "Vol";
return parts.join(' ');
};
delivery_time_element.append($("<option/>", {
value: key,
text: data.response < 1 ? vol(value) : value,
disabled: data.response < 1 ? true : false
}));
});