Javascript JQuery,使用动态类创建元素

Javascript JQuery,使用动态类创建元素,javascript,jquery,properties,dynamically-generated,Javascript,Jquery,Properties,Dynamically Generated,我正在尝试创建具有动态类值的元素,但迄今为止没有成功。以下是代码: let sender = "alex"; let message = "testMsg"; let time = "15:30"; let msg = $('<span>') .append($('<span>', {class : 'timestamp'}, {text: time})) .append($('<p>', {class

我正在尝试创建具有动态类值的元素,但迄今为止没有成功。以下是代码:

let sender = "alex";
let message = "testMsg";
let time = "15:30";
let msg = $('<span>')
              .append($('<span>', {class : 'timestamp'}, {text: time}))
              .append($('<p>', {class : sender}, {text: message}));
let sender=“alex”;
让message=“testMsg”;
让时间=“15:30”;
让msg=$('')
.append($('',{class:'timestamp'},{text:time}))
.append($(“”,{class:sender},{text:message}));
结果如下:

<span>
    <span id="timestamp"></span>
    <p></p>
</span>

这是令人困惑的,因为我读到这种更“优雅”的方式允许变量被用作动态属性。我错过了什么

谢谢


已解决:结果是我尝试为.append()函数指定3个参数。阅读下面的解决方案和解释。

您错误地放置了第二个属性(文本)

var$div=$(“”,{class:'myClass',text:'Some text'});
$(“正文”)。追加($div)
.myClass{
背景色:黑色;
宽度:50px;
高度:50px;
颜色:白色;
}

您错误放置了第二个属性(文本)

var$div=$(“”,{class:'myClass',text:'Some text'});
$(“正文”)。追加($div)
.myClass{
背景色:黑色;
宽度:50px;
高度:50px;
颜色:白色;
}

你很接近,以下是我做的一些小改动:

  • 正确指定标签,它应该是
    而不是
  • 使用正确的API,可以传递多个参数<代码>$('',{class:'timestamp',text:time})
  • 定义所有变量,即未定义时间
  • 不应在
    中插入
    ,由
  • let sender=“alex”,
    message=“testMsg”,
    时间='15:30';
    让msg=$('')
    .附加($(''){
    类:“时间戳”,
    文本:时间
    }))
    .append($(“”{
    类别:发送者,
    文本:消息
    }));
    $('div').append(msg)
    .alex{color:green}
    .timestamp{color:red}

    你很接近,以下是我做的一些小改动:

  • 正确指定标签,它应该是
    而不是
  • 使用正确的API,可以传递多个参数<代码>$('',{class:'timestamp',text:time})
  • 定义所有变量,即未定义时间
  • 不应在
    中插入
    ,由
  • let sender=“alex”,
    message=“testMsg”,
    时间='15:30';
    让msg=$('')
    .附加($(''){
    类:“时间戳”,
    文本:时间
    }))
    .append($(“”{
    类别:发送者,
    文本:消息
    }));
    $('div').append(msg)
    .alex{color:green}
    .timestamp{color:red}
    
    
    试试这个:

    let sender = "alex";
    let message = "testMsg";
    let time = "15:30";
    let msg = $('<span>')
                      .append($('<span>', {class : 'timestamp', text: time}))
                      .append($('<p>', {class : sender, text: message}));
    
    let sender=“alex”;
    让message=“testMsg”;
    让时间=“15:30”;
    让msg=$('')
    .append($('',{class:'timestamp',text:time}))
    .append($(“”,{class:sender,text:message}));
    
    试试这个:

    let sender = "alex";
    let message = "testMsg";
    let time = "15:30";
    let msg = $('<span>')
                      .append($('<span>', {class : 'timestamp', text: time}))
                      .append($('<p>', {class : sender, text: message}));
    
    let sender=“alex”;
    让message=“testMsg”;
    让时间=“15:30”;
    让msg=$('')
    .append($('',{class:'timestamp',text:time}))
    .append($(“”,{class:sender,text:message}));
    

    这段代码中有太多错误,所以我想这不是真正的错误。你能构建一个可运行的代码段吗?请看,您可以使用主题的jQuery,但为什么要使用
    let
    而不是
    var
    ?@DenysSéguret I固定了跨度并添加了“time”变量,只有我能找到错误。这是我正在运行的生成上述结果的代码。这段代码中有太多错误,所以我猜这不是真正的错误。你能构建一个可运行的代码段吗?请看,您可以使用主题的jQuery,但为什么要使用
    let
    而不是
    var
    ?@DenysSéguret I固定了跨度并添加了“time”变量,只有我能找到错误。这是我正在运行的代码,以产生上述结果。事实上,它甚至不应该是
    (这是因为引擎很松,但无效),而是
    @DenysSéguret jQuery documentation@blex ok,这仍然是一个糟糕的做法。它假设浏览器按照您希望的方式解析无效的HTML。[代码段可以工作,但我仍然没有得到任何类。为什么会这样?]没关系,修复了它。谢谢大家。事实上,它甚至不应该是
    (这是因为引擎很松但无效),而是
    @DenysSéguret jQuery文档@blex ok,这仍然是一个糟糕的做法。它假设浏览器按照您希望的方式解析无效的HTML。[代码段可以工作,但我仍然没有得到任何类。为什么会这样?]没关系,修复了它。谢谢,伙计们。为什么又是一个相同的答案?为什么又是一个相同的答案?