Это возможно с помощью триггера перед обновлением. В этом триггере вы можете сравнить старые с новыми значениями и отменить обновление, если они не отличаются. Но это приведет к ошибке на сайте вызывающего абонента.
Я не знаю, почему вы хотите это сделать, но здесь есть несколько возможностей:
$("div:has(p)").addClass("has-paragraph");
will add a class to all divs that contain p children. If the paragraphs aren't direct children, this won't pick them up.
Note: doing this:
$("div p").addClass("has-paragraph");
will add the class to the paragraph not the div. You can fix that by doing this:
$("div p").parents("div").addClass("has-paragraph");
but this will catch multiple div ancestors. You could do this:
$("div p").parents("div:first").addClass("has-paragraph");
to fix that.
Or more programmatically:
$("div").each(function() {
if ($(this).find("p").length > 0) {
// do stuff
}
});
Дайте вашему div идентификатор, затем:
if($('#myDiv p').length) {
alert('I have a paragraph');
}
var result = ($('div p').size() > 0);
или
var result = ($('div p').length > 0);
Это захватит любой p
внутри любого div
. Это в основном то, что есть у @ karim79.
Могу поспорить:
$("div").each(function(){
if ($(this).children('p').length>0){
// do stuff, assign boolean if you want
}
});
Я предполагал, что вы ищете прямых детей. Если нет, используйте
if ($(':has(p)',this).length>0) ...
Не знаете, как вы хотите хранить свою информацию, но следующий код соберет все теги div, содержащие ap tag.
$("div:has(p)").each( function () {
# Store what you need here
});
Если у вас есть конкретный div, который вы хотите протестировать, следующее должно работать на основе «правдивого» значения. Я уверен, что кто-нибудь может получить точное значение истинного или ложного с помощью некоторых хитроумных средств.
if ( $("#divId:has(p)") ) {
# Do what you need here
}