$("div:has(p)").addClass("has-paragraph");
добавит класс ко всем элементам div, содержащим p потомков. Если абзацы не являются прямыми дочерними элементами, это не поднимет их.
Примечание: делает это:
$("div p").addClass("has-paragraph");
добавит класс в абзац , а не в div. Это можно исправить, выполнив это:
$("div p").parents("div").addClass("has-paragraph");
но это поймает нескольких предков. Вы можете сделать это:
$("div p").parents("div:first").addClass("has-paragraph");
чтобы исправить это.
Или более программно:
$("div").each(function() {
if ($(this).find("p").length > 0) {
// do stuff
}
});