我已经陷入了一个jquery函数,我想要的是使用jquery的append函数追加一些div,但问题是我想在这个函数中添加一些if条件,
这是我的无条件工作代码
$( "#some-div-container" ).append(
"<div>name 1" +
"<a href=\"#\">" +
"<div id=\"add\">Add</div>" +
"</a>" +
"<div>Available</div>" +
"</div>"
);
我正在使用jquery的ajax函数有一些json响应,所以我想要那个,假设if(response == 1)然后执行其中的代码,我正在尝试使用条件,
$( "#some-div-container" ).append(
"<div>name 1"
if(response == 1) {
+"<a href=\"#\">" +
"<div id=\"add\">Add</div>" +
"</a>"
}
+ "<div>Available</div>" +
"</div>"
);
有可能吗? 任何帮助将不胜感激,当我把这个条件“我的其他一些javascript函数没有定义”时出现错误,工作完美无条件
答案 0 :(得分:3)
使用变量
预先构建字符串var elements = "<div>";
if (someCondition) {
elements += "<a href='#'>some link</a>";
}
elements += "</div>";
或者,更具体的例子:
var elements = "<div>name 1";
if(response == 1) {
elements +=
"<a href='#'>" +
"<div id='add'>Add</div>" +
"</a>";
}
elements += "<div>Available</div>";
elements += "</div>";
然后追加结果字符串:
$("#some-div-container").append(elements);
答案 1 :(得分:1)
试试这个:
$( "#some-div-container" ).append(
"<div>name 1"
+ (
response == 1 ?
"<a href=\"#\">" +
"<div id=\"add\">Add</div>" +
"</a>"
:
""
)
+ "<div>Available</div>" +
"</div>"
);
答案 2 :(得分:1)
您可以通过以下方式实现这一目标:
$('#some-div-container').append(
'<div>name 1' +
(response == 1 ? '<a href="#"><div id="add">Add</div></a>' : '') +
'<div>Available</div></div>'
);
但我认为做这样的事情会更好
var div = $('<div/>', { text: 'name 1' });
if(response == 1) {
div.append($('<a/>', { href: '#' }).append($('<div/>', { id: 'add', text: 'Add' })));
}
$('<div/>', { text: 'Available' }).appendTo(div);
div.appendTo('#some-div-container');
答案 3 :(得分:0)
根据response
的值创建不同的字符串,并使用条件字符串执行单个append()调用。
答案 4 :(得分:0)
var html;
html += "<div>name 1";
if(response == 1) {
html += "<a href=\"#\">";
// other code.....
}
$( "#some-div-container" ).append( html );