在if语句中使用.append()?

时间:2013-07-08 22:20:12

标签: javascript jquery html

我正在尝试使用.append()和if语句,我有很多可能是10.我想要做的是添加一个div,如果发生了什么。如果A小于5我想添加到div,依此类推。如果我将所有想要添加的东西放在一个.append()中,.append()对我有用。但如果我尝试单独进行,它对我不起作用。我不知道我将添加一个时间的头,它取决于用户数据,所以我不能在一个.append()中添加我想要的一切。我的代码很长,所以我在下面放了一个小提琴。我知道我可能有这个代码的其他问题,但是,只是询问.append()或添加到我想要的div的方法

if(k3a<5) {
    msg3="need to work on q3" 
    var c = $('<p>'+msg3+'</p>')
    $('#output1').append(c);
    $output1.text(msg3);
}
if(k4a<5) {
    msg4="need to work on q4" 
    var e = $('<p>'+msg4+'</p>')
    $('#output1').append(e);
    $output1.text(msg4);
}
if(k5a<5) {
    msg5="need to work on q5" 
    var e = $('<p>'+msg5+'</p>')
    $('#output1').append(e);
    $output1.text(msg5);
}

我知道我可以做类似下面的事情,但如果条件满足,我需要逐个添加它们,而不是一次性。

if (k1 < 10) {
    msg1 = "This will not space like a want.<br/>";
    msg2 = "I don know why not.<br/>";
    msg3 = "How come.<br/>";
    var e = $('<p>'+msg1+'</p>'+'<p>'+msg2+'</p>'+'<p>'+msg3+'</p>');
    $('#output1').append(e);
}

3 个答案:

答案 0 :(得分:1)

这看起来你不明白代码在做什么; (假设$output1$('#output1))当前代码是(只是一部分)

msg4="need to work on q4";    // set global variable `msg4`
var e = $('<p>'+msg4+'</p>'); // set local variable `e`
$('#output1').append(e);      // append html to element
$output1.text(msg4);          // re-set content of element as text

你很可能只想

var msg4="need to work on q4", // set local variable `msg4`
    e = $('<p>'+msg4+'</p>');  // set local variable `e`
$('#output1').append(e);       // append html to element

答案 1 :(得分:0)

您可能会发现定义一个小函数来输出消息更容易。

之类的东西
function showMessage( strMsg, targetID ) {
    $('#'+targetID).empty().append("<p>" + strMsg + "</p>");
}

并使用

调用它
showMessage( "message one", "output" );
showMessage( "message two", "output1" ); 

这样,当您决定以其他方式显示它们时,您只需在一个地方进行更改。

答案 2 :(得分:0)

什么是$output1?这应该是一个变量,但你不会给它任何东西。此外,无需使用$()将HTML放入其中,只是为了将其分配给您的ce变量。 $()获取内容。你只需要创建一个String,如:

var c = '<p>'+msg3+'</p>';

虽然我的所有代码都高于var e, c,但如果我要重复使用它,那么您就不必重写var,我也不会存储msg3在一个变量中。我的代码将包含,如:

var out1 = $('#output1');
if(k3a<5)out1.append('<p>need to work on q3</p>');
if(k4a<5)out1.append('<p>need to work on q4</p>');
if(k5a<5)out1.append('<p>need to work on q5</p>');

您的代码在您的jsFiddle页面上有所不同。例如,k3a不存在。也不要在代码中重新定义var total。您的代码可能存在更多问题,但这应该会让您走上正确的道路。