javascript - 如果条件通过单击不同的按钮返回不同的数据
问题描述
我想做一个函数,当点击不同的按钮时可以返回不同的数据。请查看我的代码并建议我进行所需的更改,非常感谢您的宝贵时间。
function getData() {
if($('data1 option:checked')){
const data1 = mainData().map(d => ({...d, x:d.x*10}));
return data1;
}
else if($('data2 option:checked')){
const data2 = mainData().map(d => ({...d, x:d.x*25}));
return data2;
}
else if($('data3 option:checked')){
const data3 = mainData().map(d => ({...d, x:d.x*13}));
return data3;
}
else if($('data4 option:checked')){
const data4 = mainData().map(d => ({...d, x:d.x*17}));
return data4;
}
};
<select id = "dropdown">
<option class='data1'>data1</option>
<option class='data2'>data2</option>
<option class='data3'>data3</option>
<option class='data4'>data4</option>
</select>
解决方案
您的代码有几个问题,例如无效的选择器(即data1
是类,并且它option
本身就是这样option.data1
),:checked
在option
元素上使用而不是:selected
在条件下直接使用 jQuery 对象if
(它不会总是作为对象工作强制true
值,请改用该length
属性)。
value
话虽如此,您可以通过在元素中放置一个属性来修复逻辑并使其更有效地工作,该属性是在语句option
的相对条件中使用的图形。if
然后,您可以将您的事件处理程序连接到change
ofselect
并执行您的逻辑,而完全不需要该if
语句。尝试这个:
<select id="dropdown">
<option value="10">data1</option>
<option value="25">data2</option>
<option value="13">data3</option>
<option value="17">data4</option>
</select>
jQuery($ => {
$('#dropdown').on('change', function() {
let optionValue = this.value;
let data = mainData().map(d => ({
...d,
x: d.x * optionValue
}));
// use data here...
});
});
推荐阅读
- java - spring 集成 tcp 客户端发送简单消息
- javascript - 根据按钮元素层次位置收集输入值
- excel - VBA循环遍历具有多个范围和条件的行
- swift - uiAlertController 有时不解雇
- c# - 设置 Xamarin 命令时,我可以在 viewModel 类构造函数中执行此操作吗?
- android - 在android中应用过滤器后自定义适配器无法正常工作
- ios - 类型“UIApplication”没有成员“didBecomeActiveNotification”
- c# - MVC Html Helper MultiSelect CheckBox
- c# - WPF 仅禁用某组按钮
- .net - 我如何只能运行一个 Selenium 实例?