как удалить родительский элемент, если он существует? - PullRequest
1 голос
/ 04 октября 2009

Итак, иногда мой вывод будет выглядеть так:

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

В других случаях это будет выглядеть так:

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

Я пытаюсь написать что-то вроде «если», где, если первый элемент 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)");
}

Ответы [ 3 ]

1 голос
/ 04 октября 2009

Будет выбран абзац, не содержащий изображения, которое соответствует вашему ограниченному образцу:

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

Вероятно, ваша фактическая разметка будет более сложной, чем эта, но есть много вариантов, которые вы могли бы сделать.

1 голос
/ 04 октября 2009

Попробуйте это:

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

( Живой пример )

0 голосов
/ 31 марта 2011
.

$ ( 'IMG') разворачивать ( 'р');

если вы хотите удалить первый родительский элемент, просто используйте .unwrap ();

PS: обратите внимание, если вы используете jQuery в режиме совместимости и, если вам нужно, измените $ на $ j

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...