The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Javascript code is not working properly in confluence page/html-macro

ahmad
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
March 18, 2024

I wrote a js function to hide rows in a table based on some criteria, 

I tested the code offline on local files and it worked properly with no errors

I implemented the same code in confluence page and it doesn't even work. I am sure my code is not the problem because it worked offline on a downloaded version of  the confluence page and a simple html table I made before.

This is my code:

```

function filter_rows(index, parentID) {
    var rows = document.getElementById("element_matrix").rows;
    var options = document.getElementById(parentID).getElementsByTagName('label')
    var checkboxes = document.getElementById(parentID).getElementsByTagName('input')
    for (let i = 0; i < options.length; i++) {
        if (checkboxes[i].checked) {
            if (!hashmapOfoptions[index].includes(options[i].innerText)) {
                hashmapOfoptions[index].push(options[i].innerText)
            }
        } else {
            hashmapOfoptions[index] = hashmapOfoptions[index].filter(item => item !== options[i].innerText)
        }
    }


    for (var row = 1; row < rows.length; row++) {
        var cols = rows[row].cells;
        willHideRow = true
        for (let j = 0; j < cols.length; j++) {
            willHideRow &= hashmapOfoptions[j].includes(cols[j].innerText)
        }
        if (!willHideRow) {
            rows[row].style.display = 'none'
        } else {
            rows[row].style.display = '' // this
        }
    }
}

```

When using a debugger I noticed all lines are executed but their effects don't always happen.

I am 100% sure the problem isnt with my code 

1 answer

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

0 votes
Andrii Maliuta
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
March 22, 2024

Hello @ahmad ,

Could you please clarify how you inject the code into the Confluence page?

If you use  out-of-the-box HTML macro, then you can use <script> tag to apply the code and if you use JS in the plugin modules it should be inside AJS.toinit() and so on.

TAGS
AUG Leaders

Atlassian Community Events