1

因此,有时,我的输出将如下所示:

<p><img src="someimage.jpg" /></p>
<p>A new paragraph</p>

其他时候,它看起来像这样:

<img src="someimage.jpg />
<p>A new paragraph</p>

我正在尝试编写某种“if”语句,如果标记中的第一个 p 元素围绕图像标签,它将拉取:

$j("p:eq(1)")

否则,它将拉动:

$j("p:eq(0)")

或者,我可以找到所有的 img 标签,如果它被包围

标签,删除那些,但我不确定哪个更好,或者如何做......

我尝试了以下方法,但它不起作用:

if($j("img:eq(0)").parent().get(0).tagName == "p") {
      var pt = $j("p:eq(1)");
} else {
      var pt = $j("p:eq(0)");
}
4

3 回答 3

1

试试这个:

var paragraphsWithoutImages = $('p').not(':has(img)')

现场示例

于 2009-10-04T03:00:51.813 回答
1

这将抓取不包含图像的段落,这适合您的有限示例:

var pt = $("p:not(:has(img))");

您的实际标记可能会比这更复杂,但您可以做很多变化。

于 2009-10-04T03:04:13.070 回答
0

$('img').unwrap('p');

如果你想删除第一个父元素,只需使用 .unwrap();

PS:注意如果你在兼容模式下使用 jQuery,如果需要,将 $ 更改为 $j

于 2011-03-30T22:27:25.637 回答