的Javascript自定義函數,我大概真的過於複雜的事情......這是很難解釋所以我就在這裏展示的代碼:裏面的支票循環
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
函數裏面。有什麼建議麼?
您聲明一個函數在那裏,但不執行它。該腳本將在x.length中聲明函數foo,但不會超過此值。 嘗試在for外部聲明funnction,並在var聲明後調用它,可以爲該函數製作x和check參數。 (不知道編碼試圖做)。 – ecarrizo
@ecarrizo我想我只是需要一個新的眼睛。稍作修改後,我得到了我想要的。感謝您的建議。發佈它作爲答案,我會標記爲正確的。 – denikov
哈哈!發生..它的好,粘貼你的工作代碼作爲答案,並接受它:)(你可以回答自己的問題); – ecarrizo