1

我是 jQuery 新手,并创建了一个小代码片段来检查以下 ID 中的任何一个(即一个或多个)是否在表单上可见。

代码工作正常,但我想知道是否可以通过检查可以分配给每个 ID 的类或名称来实现相同的目的,以便它也可以处理更多 ID,而我不必单独提及它们中的每一个。

这里有人可以帮我解决这个问题并告诉我如何正确编写它。

我的代码(工作):

if(($('#fail1').is(':visible')) || ($('#fail2').is(':visible')) || ($('#fail3').is(':visible')))
{
    // do something;
}
4

3 回答 3

3

这正是一个类的行为——在一组元素上复制逻辑。可以在 jQuery 中使用id属性选择器,尽管这些选择器相对较慢,应该作为最后的手段使用。

您需要做的就是将类赋予您的元素并修改您的代码,如下所示:

if ($('.fail').is(':visible')) {
    alert('at least one element is visible');
}

示例小提琴

于 2013-10-09T12:33:03.313 回答
2
if($( "[id^='fail']" ).is(':visible') )
{
    // do something;
}

参考 属性以选择器开始

于 2013-10-09T12:32:50.950 回答
0

作为记录,jQuery 不需要这样做:

if (Array.prototype.some.call(document.querySelectorAll('.fail'), function (n) {
      return (window.getComputedStyle(n).display !== 'none');
    })) {
    console.log('at least one element is visible');
}
于 2013-10-09T12:51:07.683 回答