0

この未確認のDIVがあるとしましょう

  <div class="class-occurs-many-times-on-page">foo</div>

その直後に、数十または数百の SPAN 要素を含む別の未確認の DIV を配置します。

<div class="a-class-that-occurs-many-times-on-page">foo</div>
<div class="another-class-that-occurs-many-times-on-page">
        <span class="latin">lorem</span><span class="latin">ipse</span>
        <span class="swedish-chef">føø</span><span class="swedish-chef">bår</span>
        .
        .
        .
        <span>...</span>
</div>

そして、最初の未確認の DIV を追加し、次の方法で SPAN コンテナー DIV を追加したいと考えています。

 values = [{word: "lorem", cls: "latin"}, {word: "ipse", cls: "latin"},
 {word:"føø",cls:"swedish-chef"}, {word:"bår",cls:"swedish-chef"}];

 $("#" +  someParentElement).append(
     $("<div></div>").addClass("a-class-that-occurs-many-times-on-page").text("foo").after(

            $("<div></div>").addClass("another-class-that-occurs-many-times-on-page").append(
                 function(index, html){                    
                     // how to wrap each value in the values array in a span
                     // and inject each of those spans into this DIV?

                 }
            )

      )


 );

このアプローチは可能ですか?もしそうなら、配列内の各値をSPANでラップして注入することが目標である場合、.append()メソッド呼び出し内の関数はvalues配列の各反復で何をしなければなりませんか?コンテナにまたがる?

ありがとう

4

1 に答える 1

0
values = [{word: "lorem", cls: "latin"}, {word: "ipse", cls: "latin"}, {word:"føø",cls:"swedish-chef"}, {word:"bår",cls:"swedish-chef"}],
len    = values.length,
$ctn   = $('<div/>', {
     class:   'another-class-that-occurs-many-times-on-page'
}),
buildarr = [];

while(len--){
    buildarr.push('<span>');
    buildarr.push(values[len].word);
    buildarr.push(values[len].cls);
    buildarr.push('</span>');
}

$ctn.append(buildarr.join('')).appendTo(document.body);

それは、その種のタスクを達成できるような提案にすぎません。配列を埋める必要がある順序は無関係であると想定しています (最速の方法でループすることによりreversed while)。順序が重要な場合は、standard for loop.

于 2010-08-06T12:46:05.233 に答える