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

emptyblockjQuery オブジェクトを入れる必要があります。

$(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 に答える