我希望在liferay 6.2的ckeditor中自定义一个新的样式。 到目前为止,我能够像这样创建样式,在ckconfig.jsp中:
{name: 'Floating style', element: 'div', attributes: {'class': 'floating-list'}}
这是一个我想应用到包含目标 ul
列表的包装 div
父元素的样式。它会看起来像这样:
<div class="floating-list">
<ul>
<li>item</li>
<li>item</li>
<li>item</li>
<li>item</li>
</ul>
</div>
但问题在于,当我将样式应用于我的列表时,它自然会像这样应用于我的 ul li
内容:
<ul>
<li><div class="floating-list">item</div></li>
<li><div class="floating-list">item</div></li>
<li><div class="floating-list">item</div></li>
<li><div class="floating-list">item</div></li>
</ul>
为了避免这种情况,我编写了一小段jquery代码:
$('.floating-list').closest('ul').each(function(){
var list = $(this);
var item = list.find('li');
item.each(function(){
$(this).html( $(this).find('.floating-list').html() );
});
list.replaceWith('<div class="floating-list"><ul>'+list.html()+'</ul></div>');
});
这实际上是有效的,但非常不规范。
我在想是否有一种方法可以改进它。谢谢。