我几乎到了我想去的地方,除了我不知道如何将 var imgt 转换为超链接图像。我已经尝试了一些东西,但它一直返回 [object][Object]
$j('#hp-featured-item > div[id^="post-"]').each(function() {
var id=this.id.match(/post-(\d+)/);
var imgt = $j("img:eq(0)");
// I tried this but it didn't work
// var imgt = $j("<a href='/blog/?p="+id[1]+"'>"+$j("img:eq(0)")+"</a>");
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('#hp-featured-item > div[id^="post-"]').each(function() {
var id=this.id.match(/^post-([0-9]+)$/);
var imgt = $j("img:eq(0)");
$j(imgt).wrap($j('<a>').attr('href', '/'));
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);
});
好的,我把它放在评论中,但我也会根据你的建议把它放在这里......本质上,原始的html输出在结构上差别很大。有时它是
<img />
<h2> </h2>
<p> </p>
<p> <img /> </p>
<h2> </h2>
<p> </p>
有时,它只是:
<h2> </h2>
<p><img /></p>
<p> text </p>
ETC...
我想拉出第一个<img />
、第一个<h2>
和第一个<p>
(没有包裹在图像周围)并按顺序打印出来:
<img />
<h2>
<p>
而且,剩下的就可以走了……这只是一个摘要视图……
好吧,好吧...我将其添加到底部,它似乎有效:
$j(this).each(function() {
var img = $j('img');
$j(img).wrap($j('<a>').attr('href', '/'));
});