使用jQuery创建元素

时间:2014-08-29 19:50:51

标签: javascript jquery

我编写了一个JS程序,如果我使用以下代码行,它可以正常工作:

    li = $("<li data-role='collapsible' data-iconpos='right' data-inset='false'></li>");

但如果我将上述行更改为如下,则会停止工作:

    li = $('<li/>, {
          data-role: 'collapsible'
          data-iconpos: 'right'
          data-shadow: 'false'
          data-corners: 'false'
    });

这里有什么问题?

编辑 - 失败的其他代码:

    a = $('<a/>', {
        href: fSelectedContent[i].hPageURL,
        click: function () { mSelectCount(fSelectedContent[i].rContentID);},
        html: fSelectedContent[i].rContentName
    });

3 个答案:

答案 0 :(得分:6)

在JavaScript对象文字中,属性名称必须是标识符或字符串。

标识符不能包含-字符,因此您必须使用字符串。

引用你的房产名称。


每个键:值对之间还需要一个逗号。


您还需要使用引号来结束<li/>的字符串。


li = $('<li/>', {
      "data-role": 'collapsible',
      "data-iconpos": 'right',
      "data-shadow": 'false',
      "data-corners": 'false'
});

答案 1 :(得分:2)

另一种方法是使用:

$('<li/>').attr({
    "data-role": 'collapsible',
    "data-iconpos": 'right',
    "data-shadow": false,
    "data-corners": false
});

但我猜每个都是自己的:)。

答案 2 :(得分:0)

对于字符串文字,如果你想让它们滚动到下一行,你需要在该行的末尾使用反斜杠。

var something = 'line 1 \
    line2';

在你的情况下,你只是在<li/>之后错过了一个结束语。

$('<li/>', {

(并且,请注意Quentin上面提到的使用正确的对象文字键的建议。如果你有-或其他保留字符,你需要引用它们。+ 1 Quentin。)