ParentNode-querySelectorAll-removed-elements.html (965B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>querySelectorAll must not return removed elements</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <!-- Regression test for https://github.com/jsdom/jsdom/issues/2519 --> 7 8 <div id="container"></div> 9 10 <script> 11 "use strict"; 12 13 setup({ single_test: true }); 14 15 const container = document.querySelector("#container"); 16 function getIDs() { 17 return [...container.querySelectorAll("a.test")].map(el => el.id); 18 } 19 20 container.innerHTML = `<a id="link-a" class="test">a link</a>`; 21 assert_array_equals(getIDs(), ["link-a"], "Sanity check: initial setup"); 22 23 container.innerHTML = `<a id="link-b" class="test"><img src="foo.jpg"></a>`; 24 assert_array_equals(getIDs(), ["link-b"], "After replacement"); 25 26 container.innerHTML = `<a id="link-a" class="test">a link</a>`; 27 assert_array_equals(getIDs(), ["link-a"], "After changing back to the original HTML"); 28 29 done(); 30 </script>