1

我正在尝试粘贴 html 内容(var 中的内容)并将其粘贴到<fieldset id="previewDataBlock">

显然我做错了什么:

function createPreviewBlock(){
        var emptyBlock = '<ul class=emptyList id=previewBlock>' +
                '<li id=periodLi></li>' +
                '<li id=companyLi></li>' +
                '<li id=industryTypeLi></li>' +
                '<li id=idustriaDeEmpresaLi></li>' +
                '<li id=jobTypeLi></li>' +
                '<li id=actionsLi></li>' +
                '</ul>';
        emptyBlock.appendTo('fieldset#previewDataBlock');
        $('ul#previewBlock').removeClass('emptyList').css('display', 'block');

}

因为我收到了这个错误:

TypeError: emptyBlock.appendTo is not a function { message="emptyBlock.appendTo is not a function",  more...}
4

2 回答 2

4

目前它只是一个 HTML 字符串(但仍然是一个字符串),你需要把它变成一个 jQuery 对象来使用.appendTo(),像这样:

 $(emptyBlock).appendTo('fieldset#previewDataBlock');

或者只是使用.append(),像这样:

$('fieldset#previewDataBlock').append(emptyBlock);

顺便说一句,为了更安全一点,请在属性上使用引号,例如:

    var emptyBlock = '<ul class="emptyList" id="previewBlock">' +

通过像这样混合单引号和双引号,您仍然可以保持它非常干净。

于 2010-08-19T19:24:51.917 回答
3

您需要放入emptyblock一个 jQuery 对象。

$(emptyblock).appendTo( /* etc*/ );

这是您的代码的一个更友好的版本:

function createPreviewBlock(){
    $(['<ul class="emptyList" id="previewBlock">',
        '<li id="periodLi"></li>',
        '<li id="companyLi"></li>',
        '<li id="industryTypeLi"></li>',
        '<li id="idustriaDeEmpresaLi"></li>',
        '<li id="jobTypeLi"></li>',
        '<li id="actionsLi"></li>',
        '</ul>'].join(''))
        .appendTo('#previewDataBlock');
    $('#previewBlock').removeClass('emptyList').css('display', 'block');
}

我使用连接而不是连接,因为 IE 6 和 7 在连接时会吸收垃圾。此外,您可以将所有内容直接传递给 jQuery 对象并避免使用该变量。这允许您使用方法链接。最后,您只想在选择器中使用 ID。它比添加这样的元素要快。

于 2010-08-19T19:25:36.750 回答