2013-08-04 200 views
0

道歉我真的不知道如何標題這篇文章。addClass - 一個功能,而不是3個功能(縮短代碼)

我在YUI中有以下3個函數。我要做的就是尋找一個div類名.box2.box3,或.box4,然後添加其他類所有這些div即在.box2格得到另一個格0.2

下面的代碼工作正常,但我太過分了,把它全部組合成了一個函數,用於編寫變量的所有值,而不是像這樣寫出3次。

var number = 2; 
var nodes = Y.all(".box"+ number); 

nodes.each(function(node){ 

    node.addClass(number); 

}); 



var number = 3; 
var nodes = Y.all(".box"+ number); 

nodes.each(function(node){ 

    node.addClass(number); 

}); 



var number = 4; 
var nodes = Y.all(".box"+ number); 

nodes.each(function(node){ 

    node.addClass(number); 

}); 

非常感謝!

+0

你重新聲明'number'和'nodes'每次... – elclanrs

回答

1

這是怎麼回事?

var numbers = [2, 3, 4]; 

for(var i = 0; i < numbers.length; i++) 
{ 
    var boxnum = numbers[i]; 
    Y.all(".box"+boxnum).addClass(boxnum); 
} 

http://jsfiddle.net/854Th/

+0

歡呼丹,這似乎應該工作,但它對我沒有任何幫助! – user1525612

+0

對不起,看到我的編輯,我不熟悉YUI,我有這個工作在jsfiddle雖然! – danbroooks

+0

感謝丹,那美好的工作。謝謝你的小提琴! – user1525612

2

您不必做each。只需在Y.all(...)上使用addClass函數即可。像這樣......

var arr = [2, 3, 4]; 
var query = ".box" + arr.join(", .box"); 
Y.all(query).addClass(levelnumber); 
+0

感謝mohkan,但後來我怎麼聲明變量「數」的價值?它如何知道爲2到4的所有值做這個函數? – user1525612

+0

看到我編輯的代碼。這應該對你有所幫助。 – mohkhan

+0

非常感謝mohkan,我將來需要這些代碼。希望我可以在這裏標記多個正確答案:( – user1525612