“全部完成” - 在行上方选择按钮 - js和php

I try to make a "select all"-button on the header above a table, checking whether all of the checkboxes in a certain Class are checked, and toggling the status if clicked.

I am a newbie with PHP and have never worked with js before. Could someone please tell what to do with "d.OriginalChecked" and "d.attr", as that's where the errors (I know of so far...) are located?

Select All On/Off on header:

<td><input type="checkbox" id="complete_select_all" name="complete_select_all" onclick="checkboxCompleteSelectAll();" value="completeAll">Select All<br></td>

For each row:

 <td class="registerCellCenter" align="center" valign="top"><input type="checkbox" class="completeCheckbox" value="completed'.$courseRegisterRow['id'].'" '.($courseRegisterRow['regstatus'] == 'completed' ? 'checked' : '').' />
        </td>

... Javascript to make it work - theoretically:

<script type="text/javascript">
    dojo.require("dojo.NodeList-traverse");
    // select all as completed
    function checkboxCompleteSelectAll(initial) {
        if (dojo.byId('complete_select_all')) {
            if (dojo.byId('complete_select_all').checked) {
                o.query('.completeCheckbox').forEach(function (elem) {
                    var d = dijit.getEnclosingWidget(elem);
                    d.OriginalChecked = d.attr('checked');
                    d.attr('checked', true);
                });
            } else {
                dojo.query('.completeCheckbox').forEach(function (elem) {
                    var d = dijit.getEnclosingWidget(elem);
                    if (typeof(d.OriginalChecked) !== 'undefined') {
                        d.attr('checked', d.OriginalChecked);
                    } else {
                        // keep as is, used on load
                    }
                });
            }
        }
    }

    dojo.addOnLoad(function() {
        checkboxCompleteSelectAll(true);
    });
</script>