diff --git a/core/misc/ajax.js b/core/misc/ajax.js
index e2aeab1..5d25d4d 100644
--- a/core/misc/ajax.js
+++ b/core/misc/ajax.js
@@ -712,7 +712,7 @@
       // :even and :odd are reversed because jQuery counts from 0 and
       // we count from 1, so we're out of sync.
       // Match immediate children of the parent element to allow nesting.
-      $(response.selector).find('> tbody > tr:visible, > tr:visible')
+      $(response.selector).children('tbody').children('tr').filter(':visible')
         .removeClass('odd even')
         .filter(':even').addClass('odd').end()
         .filter(':odd').addClass('even');
diff --git a/core/misc/collapse.js b/core/misc/collapse.js
index 6aa2e25..791a866 100644
--- a/core/misc/collapse.js
+++ b/core/misc/collapse.js
@@ -48,7 +48,7 @@
      */
     setupLegend: function () {
       // Turn the summary into a clickable link.
-      var $legend = this.$node.find('> summary');
+      var $legend = this.$node.children('summary');
 
       $('<span class="details-summary-prefix visually-hidden"></span>')
         .append(this.$node.attr('open') ? Drupal.t('Hide') : Drupal.t('Show'))
@@ -84,7 +84,7 @@
      */
     toggle: function () {
       var isOpen = !!this.$node.attr('open');
-      var $summaryPrefix = this.$node.find('> summary span.details-summary-prefix');
+      var $summaryPrefix = this.$node.children('summary').find('span.details-summary-prefix');
       if (isOpen) {
         $summaryPrefix.html(Drupal.t('Show'));
       }
diff --git a/core/misc/states.js b/core/misc/states.js
index c68d1b5..7b95df5 100644
--- a/core/misc/states.js
+++ b/core/misc/states.js
@@ -551,7 +551,7 @@
   $(document).on('state:collapsed', function (e) {
     if (e.trigger) {
       if ($(e.target).is('[open]') === e.value) {
-        $(e.target).find('> summary a').trigger('click');
+        $(e.target).children('summary').find('a').trigger('click');
       }
     }
   });
diff --git a/core/misc/tabledrag.js b/core/misc/tabledrag.js
index 01d4654..84d550f 100644
--- a/core/misc/tabledrag.js
+++ b/core/misc/tabledrag.js
@@ -102,7 +102,7 @@
 
     // Make each applicable row draggable.
     // Match immediate children of the parent element to allow nesting.
-    $table.find('> tr.draggable, > tbody > tr.draggable').each(function () { self.makeDraggable(this); });
+    $table.children('tbody').children('tr.draggable').each(function () { self.makeDraggable(this); });
 
     // Add a link before the table for users to show or hide weight columns.
     $table.before($('<button type="button" class="link tabledrag-toggle-weight"></button>')
@@ -173,8 +173,8 @@
         if (hidden && cell[0]) {
           // Add 1 to our indexes. The nth-child selector is 1 based, not 0 based.
           // Match immediate children of the parent element to allow nesting.
-          columnIndex = cell.parent().find('> td').index(cell.get(0)) + 1;
-          $table.find('> thead > tr, > tbody > tr, > tr').each(this.addColspanClass(columnIndex));
+          columnIndex = cell.parent().children('td').index(cell.get(0)) + 1;
+          $table.children('thead, tbody').children('tr').each(this.addColspanClass(columnIndex));
         }
       }
     }
@@ -939,7 +939,7 @@
     // :even and :odd are reversed because jQuery counts from 0 and
     // we count from 1, so we're out of sync.
     // Match immediate children of the parent element to allow nesting.
-    $(this.table).find('> tbody > tr.draggable:visible, > tr.draggable:visible')
+    $(this.table).children('tbody').children('tr.draggable').filter(':visible')
       .removeClass('odd even')
       .filter(':odd').addClass('even').end()
       .filter(':even').addClass('odd');
diff --git a/core/misc/tableheader.js b/core/misc/tableheader.js
index 2d6ce16..1967d0c 100644
--- a/core/misc/tableheader.js
+++ b/core/misc/tableheader.js
@@ -88,7 +88,7 @@
 
     this.$originalTable = $table;
     this.$originalHeader = $table.children('thead');
-    this.$originalHeaderCells = this.$originalHeader.find('> tr > th');
+    this.$originalHeaderCells = this.$originalHeader.children('tr').children('th');
     this.displayWeight = null;
 
     this.$originalTable.addClass('sticky-table');
@@ -160,7 +160,7 @@
         .append($stickyHeader)
         .insertBefore(this.$originalTable);
 
-      this.$stickyHeaderCells = $stickyHeader.find('> tr > th');
+      this.$stickyHeaderCells = $stickyHeader.children('tr').children('th');
 
       // Initialize all computations.
       this.recalculateSticky();
diff --git a/core/misc/tableresponsive.js b/core/misc/tableresponsive.js
index b4eab62..c804778 100644
--- a/core/misc/tableresponsive.js
+++ b/core/misc/tableresponsive.js
@@ -64,7 +64,7 @@
   $.extend(TableResponsive.prototype, {
     eventhandlerEvaluateColumnVisibility: function (e) {
       var pegged = parseInt(this.$link.data('pegged'), 10);
-      var hiddenLength = this.$headers.filter('.priority-medium:hidden, .priority-low:hidden').length;
+      var hiddenLength = this.$headers.filter('.priority-medium, .priority-low').filter(':hidden').length;
       // If the table has hidden columns, associate an action link with the table
       // to show the columns.
       if (hiddenLength > 0) {
@@ -82,7 +82,7 @@
     eventhandlerToggleColumns: function (e) {
       e.preventDefault();
       var self = this;
-      var $hiddenHeaders = this.$headers.filter('.priority-medium:hidden, .priority-low:hidden');
+      var $hiddenHeaders = this.$headers.filter('.priority-medium, .priority-low').filter(':hidden');
       this.$revealedCells = this.$revealedCells || $();
       // Reveal hidden columns.
       if ($hiddenHeaders.length > 0) {
diff --git a/core/misc/tableselect.js b/core/misc/tableselect.js
index 78e8c90..c99e5aa 100644
--- a/core/misc/tableselect.js
+++ b/core/misc/tableselect.js
@@ -44,7 +44,7 @@
     });
 
     // For each of the checkboxes within the table that are not disabled.
-    checkboxes = $table.find('td input[type="checkbox"]:enabled').on('click', function (e) {
+    checkboxes = $table.find('td input[type="checkbox"]').filter(':enabled').on('click', function (e) {
       // Either add or remove the selected class based on the state of the check all checkbox.
       $(this).closest('tr').toggleClass('selected', this.checked);
 
diff --git a/core/misc/vertical-tabs.js b/core/misc/vertical-tabs.js
index 1b51850..9b65218 100644
--- a/core/misc/vertical-tabs.js
+++ b/core/misc/vertical-tabs.js
@@ -22,11 +22,11 @@
 
       $(context).find('[data-vertical-tabs-panes]').once('vertical-tabs').each(function () {
         var $this = $(this).addClass('vertical-tabs__panes');
-        var focusID = $this.find(':hidden.vertical-tabs__active-tab').val();
+        var focusID = $this.find('.vertical-tabs-active-tab').filter(':hidden').val();
         var tab_focus;
 
         // Check if there are some details that can be converted to vertical-tabs
-        var $details = $this.find('> details');
+        var $details = $this.children('details');
         if ($details.length === 0) {
           return;
         }
@@ -39,7 +39,7 @@
         $details.each(function () {
           var $that = $(this);
           var vertical_tab = new Drupal.verticalTab({
-            title: $that.find('> summary').text(),
+            title: $that.children('summary').text(),
             details: $that
           });
           tab_list.append(vertical_tab.item);
@@ -55,8 +55,8 @@
           }
         });
 
-        $(tab_list).find('> li').eq(0).addClass('first');
-        $(tab_list).find('> li').eq(-1).addClass('last');
+        $(tab_list).children('li').eq(0).addClass('first');
+        $(tab_list).children('li').eq(-1).addClass('last');
 
         if (!tab_focus) {
           // If the current URL has a fragment and one of the tabs contains an
@@ -66,7 +66,7 @@
             tab_focus = $locationHash.closest('.vertical-tabs__pane');
           }
           else {
-            tab_focus = $this.find('> .vertical-tabs__pane').eq(0);
+            tab_focus = $this.children('.vertical-tabs__pane').eq(0);
           }
         }
         if (tab_focus.length) {
@@ -119,7 +119,7 @@
      */
     focus: function () {
       this.details
-        .siblings('.vertical-tabs__pane')
+        .siblings('.vertical-tabs-active-tab').filter(':hidden')
         .each(function () {
           var tab = $(this).data('verticalTab');
           tab.details.hide();
diff --git a/core/modules/block/js/block.admin.js b/core/modules/block/js/block.admin.js
index b8f9682..679a92b 100644
--- a/core/modules/block/js/block.admin.js
+++ b/core/modules/block/js/block.admin.js
@@ -21,7 +21,7 @@
        */
       function hideCategoryDetails(index, element) {
         var $catDetails = $(element);
-        $catDetails.toggle($catDetails.find('li:visible').length > 0);
+        $catDetails.toggle($details.find('li').filter(':visible').length > 0);
       }
 
       /**
diff --git a/core/modules/ckeditor/js/ckeditor.drupalimage.admin.js b/core/modules/ckeditor/js/ckeditor.drupalimage.admin.js
index 44072df..9b0aba8 100644
--- a/core/modules/ckeditor/js/ckeditor.drupalimage.admin.js
+++ b/core/modules/ckeditor/js/ckeditor.drupalimage.admin.js
@@ -13,7 +13,7 @@
         var $maxFileSize = $(root + '[max_size]"]');
         var $maxWidth = $(root + '[max_dimensions][width]"]');
         var $maxHeight = $(root + '[max_dimensions][height]"]');
-        var $scheme = $(root + '[scheme]"]:checked');
+        var $scheme = $(root + '[scheme]"]').filter(':checked');
 
         var maxFileSize = $maxFileSize.val() ? $maxFileSize.val() : $maxFileSize.attr('placeholder');
         var maxDimensions = ($maxWidth.val() && $maxHeight.val()) ? '(' + $maxWidth.val() + 'x' + $maxHeight.val() + ')' : '';
diff --git a/core/modules/comment/comment-entity-form.js b/core/modules/comment/comment-entity-form.js
index b41ab84..f6733d0 100644
--- a/core/modules/comment/comment-entity-form.js
+++ b/core/modules/comment/comment-entity-form.js
@@ -11,7 +11,7 @@
     attach: function (context) {
       var $context = $(context);
       $context.find('fieldset.comment-entity-settings-form').drupalSetSummary(function (context) {
-        return Drupal.checkPlain($(context).find('.form-item-comment input:checked').next('label').text());
+        return Drupal.checkPlain($(context).find('.form-item-comment input').filter(':checked').next('label').text());
       });
     }
   };
diff --git a/core/modules/menu_ui/menu_ui.admin.js b/core/modules/menu_ui/menu_ui.admin.js
index 06a9f34..19e9ade 100644
--- a/core/modules/menu_ui/menu_ui.admin.js
+++ b/core/modules/menu_ui/menu_ui.admin.js
@@ -23,7 +23,7 @@
     var $menu = $('#edit-menu');
     var values = [];
 
-    $menu.find('input:checked').each(function () {
+    $menu.find('input').filter(':checked').each(function () {
       // Get the names of all checked menus.
       values.push(Drupal.checkPlain($.trim($(this).val())));
     });
diff --git a/core/modules/node/content_types.js b/core/modules/node/content_types.js
index c77a2c3..8c50715 100644
--- a/core/modules/node/content_types.js
+++ b/core/modules/node/content_types.js
@@ -18,7 +18,7 @@
       });
       $context.find('#edit-workflow').drupalSetSummary(function (context) {
         var vals = [];
-        $(context).find("input[name^='options']:checked").parent().each(function () {
+        $(context).find("input[name^='options']").filter(':checked').parent().each(function () {
           vals.push(Drupal.checkPlain($(this).text()));
         });
         if (!$(context).find('#edit-options-status').is(':checked')) {
@@ -29,9 +29,9 @@
       $('#edit-language', context).drupalSetSummary(function (context) {
         var vals = [];
 
-        vals.push($(".form-item-language-configuration-langcode select option:selected", context).text());
+        vals.push($(".form-item-language-configuration-langcode select option", context).filter(':selected').text());
 
-        $('input:checked', context).next('label').each(function () {
+        $('input', context).filter(':checked').next('label').each(function () {
           vals.push(Drupal.checkPlain($(this).text()));
         });
 
@@ -40,7 +40,7 @@
       $context.find('#edit-display').drupalSetSummary(function (context) {
         var vals = [];
         var $editContext = $(context);
-        $editContext.find('input:checked').next('label').each(function () {
+        $editContext.find('input').filter(':checked').next('label').each(function () {
           vals.push(Drupal.checkPlain($(this).text()));
         });
         if (!$editContext.find('#edit-display-submitted').is(':checked')) {
diff --git a/core/modules/node/node.js b/core/modules/node/node.js
index cf0f979..7a57112 100644
--- a/core/modules/node/node.js
+++ b/core/modules/node/node.js
@@ -39,7 +39,7 @@
         var vals = [];
 
         if ($optionsContext.find('input').is(':checked')) {
-          $optionsContext.find('input:checked').next('label').each(function () {
+          $optionsContext.find('input').filter(':checked').parent().each(function () {
             vals.push(Drupal.checkPlain($.trim($(this).text())));
           });
           return vals.join(', ');
diff --git a/core/modules/system/system.modules.js b/core/modules/system/system.modules.js
index 45ddf3b..8d140c4 100644
--- a/core/modules/system/system.modules.js
+++ b/core/modules/system/system.modules.js
@@ -23,7 +23,7 @@
 
       function hidePackageDetails(index, element) {
         var $packDetails = $(element);
-        var $visibleRows = $packDetails.find('table:not(.sticky-header)').find('tbody tr:visible');
+        var $visibleRows = $packDetails.find('table:not(.sticky-header)').find('tbody tr').filter(':visible');
         $packDetails.toggle($visibleRows.length > 0);
       }
 
diff --git a/core/modules/views_ui/js/views-admin.js b/core/modules/views_ui/js/views-admin.js
index d0534cf..9f63e67 100644
--- a/core/modules/views_ui/js/views-admin.js
+++ b/core/modules/views_ui/js/views-admin.js
@@ -713,7 +713,7 @@
           // first operator dropdown we encounter, going backwards from the current
           // row. This dropdown is the one associated with the current row's filter
           // group.
-          var operatorValue = $draggableRow.prevAll('.views-group-title').find('option:selected').html();
+          var operatorValue = $draggableRow.prevAll('.views-group-title').find('option').filter(':selected').html();
           var operatorLabel = '<span class="views-operator-label">' + operatorValue + '</span>';
           // If the next visible row after this one is a draggable filter row,
           // display the operator label next to the current row. (Checking for
