-1

我正在尝试将 .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);
}
4

3 回答 3

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
于 2013-07-08T22:30:51.843 回答
0

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

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

并使用

showMessage( "message one", "output" );
showMessage( "message two", "output1" ); 

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

于 2013-07-08T22:37:39.653 回答
0

是什么$output1?那应该是一个变量,但你没有给它分配任何东西。此外,没有必要$()仅仅为了将其分配给您的ce变量而将 HTML 放入其中。$()获得内容。您只需要制作一个字符串,例如:

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在你的代码中重新定义。您的代码可能存在更多问题,但这应该会让您走上正确的道路。

于 2013-07-08T22:51:39.210 回答