2011-04-05 64 views
3

我的jQuery的下面的代码片段: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

给我们一个提供错误的HTML示例。你可以使用[jsfiddle.net](http://jsfiddle.net) – Khez 2011-04-05 14:47:00

回答

5

我会改变他们全部是块级元素。

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

或者如果你确实需要附加一些文字。

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

@tvanson我认为块应该用引号括起来,即{display:'block'} – Chandu 2011-04-05 14:53:02

+1

+1伟大的解决方案。使用'.css('display','block')'也可能是好的,如果有人不喜欢用简单的规则来使用对象表示法。 – kapa 2011-04-05 14:54:22

+0

@cybernate - 绝对正确,最近编辑了太多的CSS文件。 – tvanfosson 2011-04-05 14:54:44

2

@ tvanfosson的解决方案是伟大的,但如果你想单独的行为和表现,将其添加到您的CSS:

#div_you_are_inserting_to a { display: block; } 

这是优先的选择,我个人真的不喜欢将CSS规则添加到我的jQuery代码中。

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