Код ниже найдет изображение, если оно существует, и переместит его над заголовком и текстом. Итак, если разметка выглядит так:
<h2>Some fancy title</h2>
<p>Some interesting text</p>
<img src="someimage.jpg" />
или даже это:
<p><h2>Some fancy title</h2></p>
<img src="someimage.jpg" />
<p>Some interesting text</p>
Он будет переставлять элементы так, чтобы это выглядело так:
<img src="someimage.jpg" />
<h2>Some fancy title</h2>
<p>Some interesting text
Теперь я пытаюсь выяснить, как переработать код, чтобы, если в контенте есть видео (независимо от того, есть ли в сообщении также изображения), оно переместит видео выше всего остального. Может кто-нибудь предложить или показать мне способ сделать это?
Это текущий код, как он у меня сейчас есть:
$j('#hp-featured-item > div[id^="post-"]').each(function() {
if($j(this).find('embed')) {
var id=this.id.match(/^post-([0-9]+)$/);
var imgt = $j("img:eq(0)");
var pt = $j("p:not(:has(img)):eq(0)");
var hh = $j("h2:eq(0)");
$j(this).html('');
$j(this).append(imgt).append(hh).append(pt);
$j(this).each(function() {
var img = $j('img');
$j(img).wrap($j('<a>').attr('href', '/blog/?p='+id[1]));
var h2 = $j('h2');
$j(h2).wrap($j('<a>').attr('href', '/blog/?p='+id[1]));
});
} else {
var id=this.id.match(/^post-([0-9]+)$/);
var imgt = $j("embed:eq(0)");
var pt = $j("p:not(:has(embed)):eq(0)");
var hh = $j("h2:eq(0)");
$j(this).html('');
$j(this).append(imgt).append(hh).append(pt);
$j(this).each(function() {
var img = $j('embed');
$j(img).wrap($j('<a>').attr('href', '/blog/?p='+id[1]));
var h2 = $j('h2');
$j(h2).wrap($j('<a>').attr('href', '/blog/?p='+id[1]));
});
}
});