3

jQuery の次のスニペットがあります。

$(elementId).prevAll().appendTo(prevDiv);

機能しますが、問題は、 prevAll() 関数によって選択されたすべての要素が、それらの間にスペースを入れずに prevDiv div に追加されることです。これは、この div (アンカー タグのコレクション) のコンテンツが複数の行に折り返されないことを意味します。

各コレクション項目の後にスペースを追加したり、各要素を強制的にラップするにはどうすればよいですか?

編集: 要求に応じて、問題を示す HTML を次に示します。

<div style="width:200px; overflow:hidden; border:2px"><a style="padding:5px;"  href="http://www.domain.com/" id="p-1">1</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-2">2</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-3">3</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-4">4</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-5">5</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-6">6</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-7">7</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-8">8</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-9">9</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-10">10</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-11">11</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-12">12</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-13">13</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-14">14</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-15">15</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-16">16</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-17">17</a><a style="padding:5px;"  href="http://www.domain.com/" id="p-18">18</a></div>
4

3 に答える 3

5

それらをすべてブロックレベルの要素に変更します。

$(elementId).prevAll().css( { display: 'block' } ).appendTo(prevDiv);

または、本当にテキストを追加する必要がある場合。

$(elementId).prevAll()
            .appendTo(prevDiv)
            .after( " " );
于 2011-04-05T14:47:27.537 に答える
2

@tvanfosson のソリューションは素晴らしいですが、動作と表示を分離したい場合は、CSS に追加してください。

#div_you_are_inserting_to a { display: block; }

これは好みの選択です。個人的には、jQuery コードに CSS ルールを追加するのはあまり好きではありません。

于 2011-04-05T14:52:33.560 に答える
0
$(elementId).prevAll().addClass('myDisplayBlockClass').appendTo(prevDiv);
于 2011-04-05T15:00:45.047 に答える