みなさん、こんにちは。
<figure>
とを使用して、通常の画像タグからHTML5画像キャプションを作成するスクリプトを作成しました<figcaption>
。
私のCMSはFCKEditorを使用しており、常に段落内に埋め込み画像を配置します。したがって、私のスクリプトは<figcaption>
画像の周りを構築し、それを段落の外に移動します(html5を参照、段落内のfigure / figcaptionは予測できない出力を提供します))。
私が書いたスクリプトは機能しますが、DOMを1回だけトラバースする方法がわからなかったため、DOMを2回トラバースします。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));
});
})