Javascript 自定义函数,内部有一个检查 for 循环
Javascript custom function with a check inside for loop
我可能真的把事情复杂化了......而且很难解释,所以我在这里只显示代码:
for (var i = 0; i < x.length; i++) {
(function(i) {
if (x[i].className === 'RU') {
x[i].style.display = 'none';
if (x[i].previousSibling.tagName === 'BR' && x[i].previousSibling.style.display != 'none') {
x[i].previousSibling.style.display = 'none';
}
}
})(i);
}
这工作正常,但我想做的是在循环内创建一个函数,该函数将检查每个x[i].previousSibling
是否属于"BR"类型。 所以我需要声明一个函数,该函数将循环自身,直到它到达不是"BR"标签的元素。 我试过了:
for (var i = 0; i < x.length; i++) {
(function(i) {
if (x[i].className === 'RU') {
x[i].style.display = 'none';
var check = true;
var a = '';
function foo() {
while (check) {
if (x[i].previousSibling.tagName === 'BR' && x[i].previousSibling.style.display != 'none') {
x[i].previousSibling.style.display = 'none';
a = x[i].previousSibling;
}else
check = false;
foo();
}
}
}
})(i);
}
这什么也没做...我认为它甚至没有进入foo
功能。 有什么建议吗?
以下是经过一些调整并摆脱不必要的变量后有效的方法:
for (var i = 0; i < x.length; i++) {
(function(i) {
if (x[i].className === 'RU') {
x[i].style.display = 'none';
var a = x[i];
foo();
function foo() {
if (a.previousSibling && a.previousSibling.tagName === 'BR' && x[i].previousSibling.style.display != 'none') {
x[i].previousSibling.style.display = 'none';
a = a.previousSibling;
foo();
}
}
}
})(i);
}
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 如何检查管道中未定义的项目
- 主干-不管怎样,检查事件以前是否绑定过
- 为什么JavaScript在for循环为3时向所有4发出警报
- for循环在javascript中循环一次后不检查条件
- 如何使用 for 循环来检查井字游戏中的获胜者
- 使用“for in”的检查键返回未定义
- 如何使用循环 for 与 java 脚本一起检查输入中的值
- JS for 循环仅检查第一个单选按钮
- Knockoutjs for each n 行检查下拉列表是否有值
- 在for循环数组检查和JSON变量方面遇到问题
- 使用for循环检查两个或多个表单值的JavaScript验证不相同
- 是否可以检查DOM.readyState for Jasmine
- 使用for循环和if语句检查带有数字的id名
- JavaScript for validate只有一个被检查的文件
- 我在Javascript中做了一个for循环来检查一个数字是否是素数.但它不起作用
- 将if添加到AJAX for Rails中(检查this是否==DOM元素)
- 在另一个网站上使用Javascript for Chrome Extension检查所有框时出现问题
- Javascript 自定义函数,内部有一个检查 for 循环