【问题标题】:how to remove parent element if it exists?如果存在,如何删除父元素?
【发布时间】:2009-10-04 02:52:29
【问题描述】:

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

<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)");
}

【问题讨论】:

    标签: jquery tags element parent


    【解决方案1】:

    试试这个:

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

    (Live example)

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-10
          • 2021-11-27
          • 2017-07-22
          • 2021-05-06
          • 2013-10-16
          • 1970-01-01
          相关资源
          最近更新 更多