jQuery - 插入的锚标签无法正确包装

时间:2011-04-05 14:45:36

标签: jquery css dom-manipulation

我有以下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>

3 个答案:

答案 0 :(得分:5)

我会将它们全部更改为块级元素。

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

或者如果你真的需要附加一些文字。

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

答案 1 :(得分:2)

@ tvanfosson的解决方案很棒,但是如果你想分离行为和演示文稿,请将它添加到你的CSS中:

#div_you_are_inserting_to a { display: block; }

这是首选项的选择,我个人并不喜欢在我的jQuery代码中添加CSS规则。

答案 2 :(得分:0)

$(elementId).prevAll().addClass('myDisplayBlockClass').appendTo(prevDiv);