大家好,
我编写了一个脚本,使用<figure>
和从常规图像标签创建 HTML5 图像标题<figcaption>
。
我的 CMS 使用 FCKEditor,它总是将嵌入的图像放置在段落中。所以我的脚本围绕图像构建了一个<figcaption>
,然后将其移到段落之外(参见html5,段落内的图/图标题给出了不可预测的输出))。
我编写的脚本有效,但它遍历了 DOM 两次,因为我想不出一种只遍历 DOM 一次的方法。如果更精通 JQuery 的人可以就如何简化/改进脚本提供一些建议,我将不胜感激。
谢谢,-NorthK
// use like this:
// <img class="caption" src="http://placehold.it/350x150" alt="Sample image caption" />
//
$(document).ready(function() {
// iterate over each element with img.caption
$('img.caption').each(function() {
var classList = $(this).attr('class'); // grab the image's list of classes, if any
$(this).wrap('<figure class="' + classList + '"></figure>'); // wrap the <img> with <figure> and add the saved classes
$(this).after('<figcaption>' + $(this).attr('alt') + '</figcaption>'); // add the caption
$(this).removeAttr('class'); // remove the classes from the original <img> element
});
// now iterate over each figure.caption we built, and relocate it to before its closest preceding paragraph
$('figure.caption').each(function() {
$(this).parent('p').before($(this));
});
})