[英]Check if a div has any children
我有下面的代码,检查我的div是否有任何类“错误”,如果是这样,它显示了jQuery UI对话框。 但是,我想扩展代码,以便它检查这些div,如果有任何空,它不应该显示对话框。
我环顾四周,有些人建议使用children()。length> 0来完成这个,但我不知道如何用我的代码写这个。
JS:
$("#run").click(function() {
if ($("[id^='Drop']").hasClass("wrong")) {
$("#dialog1").dialog("open");
}
});
以下选择器可用于测试元素是否为空:
现在,重述你的陈述:
......所以它检查
那些错误的div和if有任何空的它们都应该是满满的不显示对话框。
你会写:
var $allWrong = $("id[^='Drop'].wrong"),
$notEmpty = $wrong.filter(":parent");
if ($allWrong.length && $allWrong === $notEmpty) {
// show dialog
}
+计算儿童时计算+文本节点。 <span> </span>
包含一个包含空格的文本节点。 因此它匹配:parent
和不匹配:empty
。
逻辑由两部分组成:
id
属性以"Drop"
开头且具有.wrong
类的.wrong
。 为此,我在执行最终条件之前保存中间变量的第一步:
var $wrongFields = $('[id^="Drop"].wrong');
if ($wrongFields.length && !$wrongFields.filter(':empty').length) {
// at least one field exists with:
// - id starting with "Drop"
// - class of "wrong"
// and none of those fields are empty
$("#dialog1").dialog("open");
}
这也行得通
$("#run").click(function(){
if ($("[id^='Drop']").hasClass("wrong") && $("[id^='Drop'].wrong:empty").length ) {
$( "#dialog1" ).dialog( "open" );
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.