Я думаю, это потому, что shiv js должен обработать все элементы перед применением CSS (обратите внимание, что это не сработает, если вы поместите shiv js ниже CSS)
поэтому, когда вы добавляете элементы после загрузки документа, shiv js не запускается повторно для их повторной обработки (извините за мою терминологию!)
работает нормально, если вы измените figure
и figcaption
на div с классами и добавите те же классы к figure
и figcaption
в CSS, но вы, вероятно, уже знали это ... на всякий случай .. например,
$(document).ready(function() {
$('img').wrap('<div class="figure"></div>');
$('img').after('<div class="figcaption">This should be bold, italic, centered and small</div>');
});
figure, .figure {
float: left;
}
figcaption, .figcaption {
display: block;
text-align: center;
font-size: 0.5em;
font-style: italic;
font-weight: bold;
padding: 5px 0;
}
вы можете, если хотите быть чистым, только подать версию div в IE, страница все равно будет «проверять» html5, или вы можете добавить пустые элементы на страницу одновременно с изображением, а затем заполнить их с помощью JQuery