Javascript 用于循环图像检查和显示的jQuery

Javascript 用于循环图像检查和显示的jQuery,javascript,jquery,html,for-loop,Javascript,Jquery,Html,For Loop,下午好 一般来说,我在编码方面缺乏经验,我遇到了一个让我头疼的问题 如果你允许我来布置场景 我目前正在处理的项目部分涉及用户从仓库挑选物品以完成装运,在某些情况下,他们必须从不同的位置挑选相同的物品,当需要这样做时,物品旁边会出现小的“!”类型图标 然后,用户可以单击图标并选择要从中检索股票的位置,然后在模式上按确认,当模式关闭时,将文本设置回蓝色并隐藏图标 我遇到的问题是,一旦建立了所有位置,就需要处理订单,这需要单击一个按钮,我只想在所有“!”图标隐藏后显示该按钮 我知道有很多问题都是基

下午好

一般来说,我在编码方面缺乏经验,我遇到了一个让我头疼的问题

如果你允许我来布置场景

我目前正在处理的项目部分涉及用户从仓库挑选物品以完成装运,在某些情况下,他们必须从不同的位置挑选相同的物品,当需要这样做时,物品旁边会出现小的“!”类型图标

然后,用户可以单击图标并选择要从中检索股票的位置,然后在模式上按确认,当模式关闭时,将文本设置回蓝色并隐藏图标

我遇到的问题是,一旦建立了所有位置,就需要处理订单,这需要单击一个按钮,我只想在所有“!”图标隐藏后显示该按钮

我知道有很多问题都是基于for循环和图像检查的,相信我,我说我自己也努力想弄清楚这一点,我尝试了不同的方法:

ShowProcess = false
for (i = 0; i<Picker; i++) {
if ($('#MultiLocIcon'+i).is(':visible')){
ShowProcess = true
}

if (ShowProcess == true) {
$('#ProcessConfirm').show()
};
};
我觉得我的经历让我失望,因为我还有很多东西要学,而且我有一种怀疑的感觉,那就是解决方案会很容易,但话说回来,只有你知道怎么做才容易

如果有人能抽出时间帮我解决这个问题或给我提些建议,我将非常感激

下面是我的代码中可能有用的一部分:

模式“确认”按钮:

“!”图标:


我将根据您的HTML,选择所有警报图标,并在其上执行psuedo选择器。这将返回所有可见的警报图标,如果阵列中没有图标,则表示它们都不可见。您需要使用类来标识它们,例如.alert:

if( $(".alert:visible").length === 0 ){
    // Do your code in here for no visible alert icons!
}

我要做的是基于您的HTML,选择所有警报图标,并在其上执行psuedo选择器。这将返回所有可见的警报图标,如果阵列中没有图标,则表示它们都不可见。您需要使用类来标识它们,例如.alert:

if( $(".alert:visible").length === 0 ){
    // Do your code in here for no visible alert icons!
}

我给出的最简单的解决方案是在所有具有
警告图标的表列中添加一个类
警告
,然后检查其可见性

if($('.warning:visible').length === 0){
   //all warning icons are hidden
}

我给出的最简单的解决方案是在所有具有
警告图标的表列中添加一个类
警告
,然后检查其可见性

if($('.warning:visible').length === 0){
   //all warning icons are hidden
}

您需要在模态逻辑中添加第二个检查,可能在
.hide()
之后:


这样做的目的是将
:可见的
伪选择器和一个正则表达式选择器组合起来,用于所有
img
标记和
id
以“icon”开头的标记。这假设您不会有任何其他id为“icon*”的无关图像标记。如果长度为0,它将继续显示#ProcessConfirm元素。

您需要在模态逻辑中添加第二个检查,可能在
.hide()之后:


这样做的目的是将
:可见的
伪选择器和一个正则表达式选择器组合起来,用于所有
img
标记和
id
以“icon”开头的标记。这假设您不会有任何其他id为“icon*”的无关图像标记。如果长度为0,它将继续并显示#ProcessConfirm元素。

当用户单击模式上的确认时,您应该检查有多少图标仍然可见,如果数量为0,则显示按钮,如下所示:

// This searchs for every <td> with an id that contains '#MultiLocIcon'
// Then checks if the amount of those which are visible is 0 and do something
if ( $('td[id*=MultiLocIcon]').not(':visible').length === 0 ) {
    $('#ProcessConfirm').show()
}
//搜索id包含“#MultiLocIcon”的每个
//然后检查可见的数量是否为0,并采取措施
如果($('td[id*=MultiLocIcon]')。不(':visible')。长度===0){
$('#ProcessConfirm').show()
}

当用户单击模式上的“确认”时,您应该检查有多少图标仍然可见,如果数量为0,则显示按钮,如下所示:

// This searchs for every <td> with an id that contains '#MultiLocIcon'
// Then checks if the amount of those which are visible is 0 and do something
if ( $('td[id*=MultiLocIcon]').not(':visible').length === 0 ) {
    $('#ProcessConfirm').show()
}
//搜索id包含“#MultiLocIcon”的每个
//然后检查可见的数量是否为0,并采取措施
如果($('td[id*=MultiLocIcon]')。不(':visible')。长度===0){
$('#ProcessConfirm').show()
}

发布html dom结构如果您的第一个示例的唯一问题是它“显然不起作用,因为它将列表中的第一个变量设置为“true”,并且始终将其读取为true”,那么您为什么不将这一行更改为:
ShowProcess=true
ShowProcess&=true
?(另外,我认为您必须否定
.is(“:visible”)
部分。)发布html dom结构如果您的第一个示例的唯一问题是它“显然不起作用,因为它将列表中的第一个变量设置为“true”,并且始终将其读取为true”,为什么不将这一行:
ShowProcess=true
更改为
ShowProcess&=true
?(另外,我认为您必须否定
.is(“:visible”)
部分。)酷,您发布了与我相同的解决方案。如果您将代码与描述一起添加,这将是一个很好的解决方案:)谢谢您的输入@DietrichGeorge,我将在将来使用您的建议。酷,您发布了与我相同的解决方案。如果您将代码与描述一起添加,这将是一个很好的解决方案:)谢谢您的输入@DietrichGeorge,我将在将来使用您的建议。这太棒了@swornabsent,您是某种向导吗?这似乎是完美的工作,我现在,所以这是我将与…非常感谢!我知道我需要做一些第二次检查,但不知道怎么做。救世主。这很好,但可读性受到影响!(如果你是唯一的开发人员,不要太担心这个问题)这真是太神奇了@swornabsent,你是某种向导吗?这似乎是完美的工作,我现在,所以这是我将与…非常感谢!我知道我需要做一些第二次检查,但不知道怎么做。救世主,这是
// This searchs for every <td> with an id that contains '#MultiLocIcon'
// Then checks if the amount of those which are visible is 0 and do something
if ( $('td[id*=MultiLocIcon]').not(':visible').length === 0 ) {
    $('#ProcessConfirm').show()
}