Javascript 循环通过DOM元素,包括span元素
我正试图让一个函数工作,但没有任何运气,所以我想我会问一个新手问题的Stackoverflow大脑信任 基本上,我有一个表单,我正在遍历所有元素,以查看是否存在自定义数据属性。如果它在那里,则保持元素可见,如果它不在那里,则隐藏元素 当我使用下面的函数时,它会在表单上的所有输入字段中循环,但它会忽略任何span或div元素,即使它们具有值为“FocusGroup”的“data group”属性Javascript 循环通过DOM元素,包括span元素,javascript,html,dom,Javascript,Html,Dom,我正试图让一个函数工作,但没有任何运气,所以我想我会问一个新手问题的Stackoverflow大脑信任 基本上,我有一个表单,我正在遍历所有元素,以查看是否存在自定义数据属性。如果它在那里,则保持元素可见,如果它不在那里,则隐藏元素 当我使用下面的函数时,它会在表单上的所有输入字段中循环,但它会忽略任何span或div元素,即使它们具有值为“FocusGroup”的“data group”属性 function DropDownSelection_Focus(FocusGroup) { var
function DropDownSelection_Focus(FocusGroup)
{
var elements = frm_FormName.elements;
var el;
for (var i=0, iLen=elements.length; i<iLen; i++)
{
el = elements[i];
var GetGroup = document.getElementById(el.name).getAttribute('data-group');
if (GetGroup != null && GetGroup !='')
{
if (GetGroup == FocusGroup.value)
{
document.getElementById(el.name).style.visibility = 'visible';
}
else
{
document.getElementById(el.name).style.visibility = 'hidden';
}
}
}
}
span/div元素既有id值又有name值,因此是否有将它们从循环中排除的原因?表单对象的element属性返回表单中所有元素的集合。元素表示输入、文本区域、按钮或选择。支持用户操作的东西-可以按下、选择等。如果您想获取具有数据组属性的所有元素,可以使用如下方式:
var elementsWithGroupAttr = frm_FormName.querySelectorAll("*[data-group]");
frm_FormName是代码段中的变量形式 表单对象的element属性返回表单中所有元素的集合。元素表示输入、文本区域、按钮或选择。支持用户操作的东西-可以按下、选择等。如果您想获取具有数据组属性的所有元素,可以使用如下方式:
var elementsWithGroupAttr = frm_FormName.querySelectorAll("*[data-group]");
frm_FormName是代码段中的变量形式 感谢大家帮助解决这个问题。我能够让我的循环与以下内容一起工作,以便其他人在以后搜索:
var elements = frm_FormName.querySelectorAll("*[data-group]");
var el;
for (var i=0, iLen=elements.length; i<iLen; i++)
{
el = elements[i]
var GetGroup = el.getAttribute('data-group');
if (GetGroup == FocusGroup.value)
{
el.style.visibility = 'visible';
}
else
{
el.style.visibility = 'hidden';
}
}
虽然格奥尔基的答案是唯一被接受的答案,但沃纳、亚利亚什和洛德凯恩的帮助也得到了认可
谢谢大家 感谢大家帮助解决这个问题。我能够让我的循环与以下内容一起工作,以便其他人在以后搜索:
var elements = frm_FormName.querySelectorAll("*[data-group]");
var el;
for (var i=0, iLen=elements.length; i<iLen; i++)
{
el = elements[i]
var GetGroup = el.getAttribute('data-group');
if (GetGroup == FocusGroup.value)
{
el.style.visibility = 'visible';
}
else
{
el.style.visibility = 'hidden';
}
}
虽然格奥尔基的答案是唯一被接受的答案,但沃纳、亚利亚什和洛德凯恩的帮助也得到了认可
谢谢大家 你知道jquery吗?不,还不知道,但一旦我学会了JS的基本知识,它就在我的“待办事项”列表中。这可能会帮助你:document.QuerySelector all'form:not[data group]“应该选择表单中id表单没有数据组属性的所有元素。这是一把小提琴,它在特殊情况下隐藏一个div。你知道jquery吗?不,还没有,但一旦我学会了JS的基本知识,它就在我的“待办事项”列表中。这可能会帮助您:document.QuerySelector所有的“form:not[data group]”应该用id表单选择表单中没有数据组属性的所有元素。这是一个为您准备的小提琴,它在特殊条件下隐藏一个div好的,这很有意义。。。我是否会更好地使用querySelectorAll,因为我的一些搜索任务中似乎会出现这种情况,这是有道理的。。。我会更好地使用querySelectorAll吗?因为在我的一些搜索中似乎会出现这种情况