我有一个jQuery函数,由两个不同的按钮执行。
$("#btnSearch, #btnDirectorSearch").click(function () {
此函数构建的部分html取决于按下了哪个按钮。我正在使用数据属性来存储我的变量:
var div = $(this).data("str");
我正在构建的html字符串取决于变量“div”的值。有没有办法在jQuery中执行内联if / else语句?
if div = "choice1" {
html += '<tr data-str = "str1" data-dataItem = "dataItem1" data-result-title = "' + name + '" data-result-id="' + sel + '">';
} else {
html += '<tr data-str = "str2" data-dataItem = "dataItem2" data-result-title = "' + name + '" data-result-id="' + sel + '">';
}
这看起来很麻烦,我希望有更好的jQuery方法来做到这一点。
谢谢!
答案 0 :(得分:17)
你有语法错误
if div = "choice1"
应该是
if (div == "choice1")
无论如何,你正在寻找的模式是:
div == "choice1" ? <code for true> : <code for false>
答案 1 :(得分:3)
您可以使用condition ? code when true: code when false
但我建议你只坚持使用curley braces,因为它看起来更好,更容易调试。 还有一件事,按以下方式执行
if(div==="choice1"){
}
else{
}
使用===
答案 2 :(得分:2)
由于它只是输出中更改的数字,您可以这样做:
var num = div == "choice1" ? 1 : 2;
html += '<tr data-str="str'+num+'" data-dataItem="dataItem'+num+'" data-result-title="'+name+'" data-result-id="' + sel + '">';
答案 3 :(得分:0)
如果您的选择有限,您可以添加一个小型查找数组:
var choices = {
choice1: {
str: "str1",
data: "dataItem1"
},
choice2: { ... }
};
html += '<tr data-str="' + choices[div].str
+ '" data-dataItem="' + choices[div].data
+ '" data-result-title="' + name + ... etc;