0

だから私はこれがおそらく恐ろしいプログラミングの実践であることを知っていますが、私は少し時間に追われていて、基本的にコード内にタグがあり、画面上のボタンをクリックすると、たくさんのタグを追加しようとしています.そのdiv内のコード。ただし、気になった点が 2 つあります。1 つ目は、追加されたコードがすべて 1 行に収まらない限り、他の JavaScript がクラッシュすることです。2 つ目は、クラスを割り当てても、CSS スタイル シートがコードに適用されません。関連するコードは次のとおりです。

            $("#results").append("<ul class='sdt_menu'>");
            for(i=0; i < progression[max].length;i++)
            {
                $("#results").append(
            "<li><a href='#'><img src='images/youAreHere.jpg' alt=''/><span class='sdt_active'></span><span class='sdt_wrap'><span class='sdt_link'>"+progression[max][i]+"</span><span class='sdt_descr'>hover to view description</span></span></a><div class='sdt_box'>"+jobs[progression[max][i]]['description']+"</div></li>");
            }

            $("#results").append("</ul>");

これをわかりやすく説明する助けがあれば大歓迎です。

4

3 に答える 3

4

現在のコードでは、追加するとすぐに<ul>ブラウザによって自動的に閉じられ(DOMに閉じられていないタグを設定することは不可能であるため)、その後<li>も追加され#resultsます。または、少なくとも、<li>の子になることが合法である場合は、そうなり<div>ます。

<li>代わりに、要素をに追加する必要があります。:に追加する必要は<ul>ありません。#results

var $ul = $("<ul class='sdt_menu'>");
for (i = 0; i < progression[max].length; i++) {
    $ul.append(...);
}
$ul.appendTo('#results');
于 2012-07-13T13:16:44.917 に答える
4

追加するときは、タグの完全な完全な閉じたセット全体を追加する必要があります。stringbuilder のようには機能しません。代わりに次のようなものを試してください:

var tag = '<ul class="sdt_menu">';
for(var i = 0; i < progression[max].length; i++) {
    tag += '...all of your other list items';
tag += "</ul>";

$(tag).appendTo("#results");
于 2012-07-13T13:13:23.590 に答える
1

これを試して:

 var tag = [];
 var ic=0;
 tag[++ic] = '<ul class="sdt_menu">';
 for(var i = 0; i < progression[max].length; i++) {
     tag += '...all of your other list items';
 }
 tag[++ic] = "</ul>";

 $("#results").append(tag.join('')); 
于 2012-07-13T13:16:59.730 に答える