如何在jquery追加函数中放入if条件

时间:2013-06-19 08:10:41

标签: jquery-ui jquery

我已经陷入了一个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函数没有定义”时出现错误,工作完美无条件

5 个答案:

答案 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>'
);

Demo

但我认为做这样的事情会更好

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');

Demo

答案 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 );