# Loop through all page items in APEX

This blog has been sitting idle for too long. So starting off the New Year with a quick find!

Here is the problem:

> We need to loop through all page items to apply some logic on demand, and preferably we want to do it dynamically.

Taking a look at _apex.page_ there is a function called _forEachPageItem._

![](https://s3-us-east-2.amazonaws.com/neilfernandez-blog/2021/01/image.png)

Function

This is not documented in [https://apex.oracle.com/jsapi](https://apex.oracle.com/jsapi) but it is public. This returns a function. Here is the internal function signature and comment inside of _page.js_ as of APEX 20.2:  

    // For the given form call callback once for each page item in that form. This includes disabled and unchecked items.
    // Page item elements are identified by having a name attribute that is not one of the well known names
    //   input type=image not supported
    // See comments in ajaxSubmit as well
    function forEachPageItem( form$, callback, allElements )

Function Signature

It looks like can you pass a specific form as a parameter, but I am using what they use inside the _page.js_ when the form parameter is null in other spots. This gives us back all page items on the page.

    allItems = apex.page.forEachPageItem;
    allItems( $( "#wwvFlowForm" ), function( el, name ) {
            console.log(el);
            console.log(name);
        }, true );

Solution

Hope this can help someone as the majority of solutions I see online regarding this revolve already looking at the metadata views via PLSQL.
