检查任何具有某个类的元素是否为空

我的页面包含这样的多个元素:

<span class="field-validation-valid text-danger" data-valmsg-for="CcInfo.CcCheck" data-valmsg-replace="true"></span>
<span class="field-validation-valid text-danger" data-valmsg-for="CcInfo.CcCheck" data-valmsg-replace="true">Something went wrong</span>
<span class="field-validation-valid text-danger" data-valmsg-for="CcInfo.CcCheck" data-valmsg-replace="true"></span>

现在,我想用JQuery检查这些元素是否包含文本。 所以在这种情况下,这是真的,因为第二个元素包含“出错了”。

我试过了:

if (!$(".field-validation-valid text-danger").is(':empty')) {
    // do work
}

但显然这并不容易。

如何实现这一目标?


您可以使用jQuery.filter()函数根据自定义条件过滤元素。 以下示例中的条件是元素具有一些非空白文本。

$(function() {
  var $notEmptySpans = $(".field-validation-valid.text-danger").filter(function() {
    return $(this).text().match(/S/) !== null;
  });
  console.log($notEmptySpans);
  if ($notEmptySpans.length > 0) {
    console.log($notEmptySpans.length + " non-empty spans found");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<span class="field-validation-valid text-danger" data-valmsg-for="CcInfo.CcCheck" data-valmsg-replace="true">Something went wrong</span>
<!-- the following are considered empty -->
<span class="field-validation-valid text-danger" data-valmsg-for="CcInfo.CcCheck" data-valmsg-replace="true"></span>
<span class="field-validation-valid text-danger" data-valmsg-for="CcInfo.CcCheck" data-valmsg-replace="true"> </span>

你需要检查是否有一些内容然后检查,也是你的选择器有问题应该是.field-validation-valid.text-danger

if (!$(".field-validation-valid.text-danger").html().trim().length) {
    // do work
}

如果检查元素具有[space]作为其内容(如<span> </span> ,则空选择器将失败


你可以

if ($(".field-validation-valid.text-danger").not(':empty').length) {
    // do work
}

length说明:检查jQuery中是否存在元素

另请注意,您需要单独列出课程。 您的示例在类名之间有空格,导致它尝试选择标签名称<text-danger>

链接地址: http://www.djcxy.com/p/83705.html

上一篇: Check if any element with a certain class is empty

下一篇: Jquery append div to new div