0

私はクラスでいくつかのulを持っています

<ul class="class">

</ul>

そして私はjqueryスクリプトを持っています、それはul-tagsの間にli-tagsを置かなければなりません:

$(document).ready(function() {
  $("select option").each(function () {
        var m = $( this ).text();
        $("ul.class").append("<li>", m, "</li>");
  });

しかし、それは機能しません。スクリプトが完了すると、次のようなhtmlが表示されます。

<ul class="class">
   <li></li>
   Option 1
   <li></li>
   Option 2
   <li></li>
   Option 3
</ul>
4

3 に答える 3

3

使用する$("ul.class").append("<li>"+m+"</li>");

それ以外の

$("ul.class").append("<li>" + m + "</li>");

ドキュメントによると、「パラメータで指定されたコンテンツを、一致した要素のセット内の各要素の最後に挿入します」。構文は.append( content [, content ] )、またはを使用できます.append( function(index, html) )。追加は、任意の数の追加の引数を取ることができます。

ここで、で発生する $("ul.class").append("<li>" + m + "</li>");のは、各パラメーターが個別のDOMコンテンツとして取得されて添付されることです。そのため、<li></li>最初に「」が添付され、次に「テキスト」が添付されます。「テキスト」は追加の引数と見なされます。

于 2013-03-26T04:59:11.847 に答える
2
$("ul.class").append("<li>", m, "</li>");

する必要があります

$("ul.class").append("<li>" + m + "</li>");
于 2013-03-26T04:52:38.557 に答える
2

また、append(..)に渡す前に、LI要素のリスト全体を単一の文字列として作成することをお勧めします。ブラウザがDOM構造を単一の呼び出しに変更する原因となる呼び出しを制限する方が効率的です。

ループ内に文字列を作成し、それを渡してループの後に追加します

元:$('ul').append('<li>option1'</li>.....<li>optionn<li>');

于 2013-03-26T04:56:49.383 に答える