Javascript 从一个节点内访问多个ID为的元素,但也可以使用特定类访问

Javascript 从一个节点内访问多个ID为的元素,但也可以使用特定类访问,javascript,jquery,Javascript,Jquery,我需要从特定元素的中检索ID以“\u inputError”结尾的所有元素!而且,我只需要检索设置了类“b-block”的输入程序。。如何使用javascript/jquery实现这一点 我知道我可以使用:var formNode=$(“#frm1”) 我知道我可以得到ID结尾的所有元素,但这将得到所有元素,这并不是我所需要的:var-inputErrors=$(“[ID$=\u-inputError]”) 如何将它们混合在一起,以便从指定的表单节点中使用“d-block”类仅检索输入错误 干杯

我需要从特定元素的中检索ID以“\u inputError”结尾的所有元素!而且,我只需要检索设置了类“b-block”的输入程序。。如何使用javascript/jquery实现这一点

我知道我可以使用:
var formNode=$(“#frm1”)

我知道我可以得到ID结尾的所有元素,但这将得到所有元素,这并不是我所需要的:
var-inputErrors=$(“[ID$=\u-inputError]”)

如何将它们混合在一起,以便从指定的表单节点中使用“d-block”类仅检索输入错误

干杯

更新:这似乎对我有用:

var inputErrors = $("[id$=_inputError].d-block");
console.warn(inputErrors[0]);

它将使用class.d-block检索所有inputError。但是,我还没有找到如何仅从选定的表单元素id而不是孔页面执行此检查。(我可以在一个页面上有多个表单!)

为了帮助其他人(如果可以的话),这里是最终的解决方案,以及我需要它的原因:

基本上,我从一篇ajax文章中得到了如下回复:

{
  type: 2,
  formid: 'frmProfile',
  fields: {
    username: "Invalid username!", 
    email: "Invalid email!"
  }
}
我循环我的response.fields以显示每个失败输入下的单个错误

然后,我需要找到一种方法,将焦点放在第一个失败的输入上!因为我的字段不是基于0索引的,所以我不能简单地将焦点设置在数组中的第一个字段上!它们是“随机”循环的

因此,我决定获取我们显示的所有输入错误(id=*\u inputError和类d-block)。返回数组中的第一个实际上是第一个输入错误!因此,我使用它的ID来确定相应的输入名称,并为其设置焦点:

var inputErrors = $("#" + response.formid + " [id$=_inputError].d-block");
var firstInputError = inputErrors[0].id.replace(/_inputError$/, ''); // get just the name of the failed input! Its name/id should be the same as <name>_inputError!

document.getElementById(firstInputError).focus();
var-inputErrors=$(“#”+response.formid+“[id$=\u-inputError].d-block”);
var firstInputRor=InputRors[0]。id.replace(/_InputRor$/,“”);//只获取失败输入的名称!其名称/id应与_inputeror相同!
document.getElementById(firstInputError.focus();
这似乎对我有好处;)希望这能为其他人提供想法

谢谢大家的帮助!
P

为了尽可能帮助他人,这里是最终的解决方案,以及我为什么需要它:

基本上,我从一篇ajax文章中得到了如下回复:

{
  type: 2,
  formid: 'frmProfile',
  fields: {
    username: "Invalid username!", 
    email: "Invalid email!"
  }
}
我循环我的response.fields以显示每个失败输入下的单个错误

然后,我需要找到一种方法,将焦点放在第一个失败的输入上!因为我的字段不是基于0索引的,所以我不能简单地将焦点设置在数组中的第一个字段上!它们是“随机”循环的

因此,我决定获取我们显示的所有输入错误(id=*\u inputError和类d-block)。返回数组中的第一个实际上是第一个输入错误!因此,我使用它的ID来确定相应的输入名称,并为其设置焦点:

var inputErrors = $("#" + response.formid + " [id$=_inputError].d-block");
var firstInputError = inputErrors[0].id.replace(/_inputError$/, ''); // get just the name of the failed input! Its name/id should be the same as <name>_inputError!

document.getElementById(firstInputError).focus();
var-inputErrors=$(“#”+response.formid+“[id$=\u-inputError].d-block”);
var firstInputRor=InputRors[0]。id.replace(/_InputRor$/,“”);//只获取失败输入的名称!其名称/id应与_inputeror相同!
document.getElementById(firstInputError.focus();
这似乎对我有好处;)希望这能为其他人提供想法

谢谢大家的帮助!
P

jQuery选择器遵循CSS规则,因此要按父元素进行筛选,请选择并留下一个空格:
var-inputErrors=$(“.d-block[id$=\u-inputError]”Thx用于您的输入,但它不适用于我。。。我可以用类“.d-block”单独获取所有元素,或者我可以获取ID以“inputError”结尾的所有元素,但是像你建议的那样组合是不起作用的。在这种情况下,我们需要看到一个HTML和JS的工作示例,因为我可以向你保证我建议的工作正常。我已经用部分解决方案更新了帖子…啊,抱歉。我误解了这个问题,你想在有类的元素中找到元素。您所拥有的,
[id$=\u inputError].d-block
可以正常工作,尽管还不清楚您所说的“我还没有找到如何仅从所选表单元素id执行此检查”是什么意思。在需要的地方将id添加到选择器…?jQuery选择器遵循CSS规则,以便按父元素进行筛选,然后选择并留下一个空格:
var-inputErrors=$(“.d-block[id$=\u-inputError]”Thx用于您的输入,但它不适用于我。。。我可以用类“.d-block”单独获取所有元素,或者我可以获取ID以“inputError”结尾的所有元素,但是像你建议的那样组合是不起作用的。在这种情况下,我们需要看到一个HTML和JS的工作示例,因为我可以向你保证我建议的工作正常。我已经用部分解决方案更新了帖子…啊,抱歉。我误解了这个问题,你想在有类的元素中找到元素。您所拥有的,
[id$=\u inputError].d-block
可以正常工作,尽管还不清楚您所说的“我还没有找到如何仅从所选表单元素id执行此检查”是什么意思。在需要的地方将id添加到选择器。。。?