Source code

Revision control

Copy as Markdown

Other Tools

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>A &lt;div&gt; with role "button" followed by removal of the element and its children and an insertion of a new div having role="checkbox"</title>
<script>
function changeRoleByRemoval (/* Element */ element, /* String */ newRole) {
var parent = element.parentNode;
if (parent) {
parent.removeChild (element);
var div = document.createElement ('div');
div.setAttribute ('role', newRole);
div.setAttribute ('id', 'test');
div.setAttribute ('tabindex', '0');
div.setAttribute ('onclick', 'changeRoleByRemoval (this, "checkbox");');
div.setAttribute ('onkeydown', 'changeRoleByRemoval (this, "checkbox");');
div.innerHTML = "This &lt;div&gt; has role '" + newRole + "'";
parent.appendChild (div);
}
}
</script>
</head>
<body>
<div>
<div role="button" id="test" tabindex="0" onclick="changeRoleByRemoval (this, 'checkbox');" onkeydown="changeRoleByRemoval (this, 'checkbox');">This &lt;div&gt; has role 'button'</div>
</div>
<p>
<button onclick="changeRoleByRemoval (document.getElementById ('test'), 'checkbox')" type="button">Change Role</button>
<button onclick="window.location.reload()" type="button">Reload Page</button>
</p>
</body>
</html>