Как определить, содержит ли html элементы уровня блока, используя jQuery? - PullRequest
1 голос
/ 16 марта 2010

Я хочу иметь возможность определить, содержит ли html-содержимое определенного элемента элементы уровня блока или нет ...

Я использовал $(el.html()).length == 0, чтобы указать, что он не , который работал нормально, но я скоро понял, что если HTML содержит «успешный» селектор CSS, то все это становится грушевидным .

Есть идеи?

Редактировать

Хорошо, так что я не был очень ясен. Под «элементами уровня блока» я понимал элементы display: block, неявно или явно.

Причина, по которой я хочу это сделать, немного сложна, но выглядит примерно так:

A. Я работаю с "Области редактирования контента", которые могут содержать любой HTML или текст. B. У меня есть модуль на стороне сервера, который создает оболочку для содержимого в режиме «редактирования» с различными классами и метаинформацией в div. C. Затем я использую jQuery для:

  1. Перемещение содержимого оболочки за ее пределы (чтобы встроенные элементы отображались встроенными ... в противном случае оболочка может разрушить дизайн страницы)
  2. Абсолютно разместите «обертку» (больше не обертку) позади содержимого и используйте ее в качестве триггера для выделения содержимого и отображения контекстного меню при щелчке правой кнопкой мыши.

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

Итак, переосмысливая мой вопрос, я думаю, что я спрашиваю, как я могу определить ширину произвольного раздела контента в HTML .... Сложно, нет?

Ответы [ 2 ]

1 голос
/ 20 ноября 2013

Чтобы получить все элементы блока потомков любого родителя с классом .anyclass, попробуйте что-то вроде этого:

$("div.anyclass").children().filter(function() {
return $(this).css("display") === "block";
})'
0 голосов
/ 17 марта 2010

В конце концов, я решил свою проблему по-другому, сделав оболочку span вместо div. Таким образом, мне не нужно перемещать его содержимое наружу, а оставить его внутри оболочки. Обертка не заставляет новые строки, что хорошо, и она принимает ширину и высоту своего содержимого.

Хотя я знаю, что технически некорректно размещать блочные элементы внутри span, похоже, что это кросс-браузерный трюк того, чего я хотел достичь.

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