2008-11-13 16 views

Trả lời

5

Điều gì giúp bạn chỉ đơn giản là lặp lại mảng?

for(var i=0; i<ary.length; i++) 
    // assuming that ary[] contains objects with a DoSometing() method 
    ary[i].doSomething(); 
+0

poster hỏi cho YUI, phải không? – Zlatko

+0

@zladuric: Vâng, anh ấy đã làm. Nhưng có vẻ như (và dường như) với tôi rằng các khung công tác JavaScript khiến mọi người quên rằng có * JavaScript đơn giản, thực tế mà họ có thể sử dụng, và đó là những gì tôi muốn chỉ ra. Bên cạnh đó, cơ hội là một vòng lặp for tốt hơn bất kỳ thực hiện 'array.each (gọi lại)' nào. – Tomalak

+0

ok. Tôi không muốn thâm nhập vào nó, tôi chỉ nghĩ rằng những loại câu trả lời này (mà không trả lời câu hỏi một cách hiệu quả, nhưng đúng hơn là chỉ ra một câu hỏi khác) sẽ đưa ra nhận xét cho câu hỏi chứ không phải trả lời. Tôi có thể là ngu ngốc, mặc dù. – Zlatko

7

YAHOO.util.Dom có ​​chức năng thực thi mà có chữ ký sau đây:

Bất kỳ | Mảng batch (el, phương pháp, o, ghi đè)

đâu el là một yếu tố DOM hoặc một mảng các phần tử DOM, phương pháp là một chức năng mà sẽ được thông qua mỗi phần tử trong mảng như là đối số đầu tiên của mình, o là một lập luận thứ hai tùy chọn, và override là một giá trị boolean xác định nếu phạm vi nên cửa sổ (false) hoặc o (true)

vì vậy, bạn có thể cal l như sau:

function setDisplay(el, display) { 
    el.style.display = display; 
} 

YAHOO.util.Dom.batch(document.getElementsByTagName('div'), setDisplay, 'none'); 

Có lẽ điều đó sẽ đáp ứng nhu cầu của bạn.

2

Trong YUI3:

Y.Array.each(myArray, function(element) { 
    Y.log(element); 
}); 

hoặc thậm chí:

Y.Array.each(myArray, function(element, index, array) { 
    ... 
}); 
Các vấn đề liên quan