diff --git a/core/modules/tracker/js/tracker-history.es6.js b/core/modules/tracker/js/tracker-history.es6.js
index dd79f15b93..277d68901c 100644
--- a/core/modules/tracker/js/tracker-history.es6.js
+++ b/core/modules/tracker/js/tracker-history.es6.js
@@ -27,15 +27,19 @@
   function processNewRepliesIndicators($placeholders) {
     // Figure out which placeholders need the "x new" replies links.
     const placeholdersToUpdate = {};
+    let field_name = null;
     $placeholders.each((index, placeholder) => {
       const timestamp = parseInt(
         placeholder.getAttribute('data-history-node-last-comment-timestamp'),
         10,
       );
-      const nodeID = placeholder.previousSibling.previousSibling.getAttribute(
+      const nodeID = $(placeholder).prevAll('[data-history-node-id]').attr(
         'data-history-node-id',
       );
       const lastViewTimestamp = Drupal.history.getLastRead(nodeID);
+      field_name = placeholder.getAttribute(
+        'data-history-node-last-comment-field-name'
+      );
 
       // Queue this placeholder's "X new" replies link to be downloaded from the
       // server.
@@ -52,7 +56,7 @@
     $.ajax({
       url: Drupal.url('comments/render_new_comments_node_links'),
       type: 'POST',
-      data: { 'node_ids[]': nodeIDs },
+      data: { 'node_ids[]': nodeIDs, 'field_name': field_name },
       dataType: 'json',
       success(results) {
         Object.keys(results || {}).forEach(nodeID => {
@@ -108,7 +112,7 @@
             10,
           );
           const nodeTimestamp = parseInt(
-            this.previousSibling.previousSibling.getAttribute(
+            $(this).prevAll('[data-history-node-timestamp]').attr(
               'data-history-node-timestamp',
             ),
             10,
@@ -117,7 +121,7 @@
           if (lastCommentTimestamp === nodeTimestamp) {
             return false;
           }
-          const nodeID = this.previousSibling.previousSibling.getAttribute(
+          const nodeID = $(this).prevAll('[data-history-node-id]').attr(
             'data-history-node-id',
           );
           if (Drupal.history.needsServerCheck(nodeID, lastCommentTimestamp)) {
diff --git a/core/modules/tracker/js/tracker-history.js b/core/modules/tracker/js/tracker-history.js
index 30a500fe70..44ff03553e 100644
--- a/core/modules/tracker/js/tracker-history.js
+++ b/core/modules/tracker/js/tracker-history.js
@@ -24,10 +24,12 @@
 
   function processNewRepliesIndicators($placeholders) {
     var placeholdersToUpdate = {};
+    var field_name = null;
     $placeholders.each(function (index, placeholder) {
       var timestamp = parseInt(placeholder.getAttribute('data-history-node-last-comment-timestamp'), 10);
-      var nodeID = placeholder.previousSibling.previousSibling.getAttribute('data-history-node-id');
+      var nodeID = $(placeholder).prevAll('[data-history-node-id]').attr('data-history-node-id');
       var lastViewTimestamp = Drupal.history.getLastRead(nodeID);
+      field_name = placeholder.getAttribute('data-history-node-last-comment-field-name');
 
       if (timestamp > lastViewTimestamp) {
         placeholdersToUpdate[nodeID] = placeholder;
@@ -41,7 +43,7 @@
     $.ajax({
       url: Drupal.url('comments/render_new_comments_node_links'),
       type: 'POST',
-      data: { 'node_ids[]': nodeIDs },
+      data: { 'node_ids[]': nodeIDs, 'field_name': field_name },
       dataType: 'json',
       success: function success(results) {
         Object.keys(results || {}).forEach(function (nodeID) {
@@ -71,12 +73,12 @@
 
       var $newRepliesPlaceholders = $(context).find('[data-history-node-last-comment-timestamp]').once('history').filter(function () {
         var lastCommentTimestamp = parseInt(this.getAttribute('data-history-node-last-comment-timestamp'), 10);
-        var nodeTimestamp = parseInt(this.previousSibling.previousSibling.getAttribute('data-history-node-timestamp'), 10);
+        var nodeTimestamp = parseInt($(this).prevAll('[data-history-node-timestamp]').attr('data-history-node-timestamp'), 10);
 
         if (lastCommentTimestamp === nodeTimestamp) {
           return false;
         }
-        var nodeID = this.previousSibling.previousSibling.getAttribute('data-history-node-id');
+        var nodeID = $(this).prevAll('[data-history-node-id]').attr('data-history-node-id');
         if (Drupal.history.needsServerCheck(nodeID, lastCommentTimestamp)) {
           if (nodeIDs.indexOf(nodeID) === -1) {
             nodeIDs.push(nodeID);
@@ -97,4 +99,4 @@
       });
     }
   };
-})(jQuery, Drupal, window);
\ No newline at end of file
+})(jQuery, Drupal, window);
diff --git a/core/modules/tracker/src/Controller/TrackerController.php b/core/modules/tracker/src/Controller/TrackerController.php
index aeb65755ee..bde9026e7d 100644
--- a/core/modules/tracker/src/Controller/TrackerController.php
+++ b/core/modules/tracker/src/Controller/TrackerController.php
@@ -179,6 +179,7 @@ public function buildContent(UserInterface $user = NULL) {
         else {
           $tracker_data[$nid]->last_comment_timestamp = max($tracker_data[$nid]->last_comment_timestamp, $statistics->last_comment_timestamp);
         }
+        $tracker_data[$nid]->last_comment_field_name = $statistics->field_name;
       }
 
       // Display the data.
@@ -209,6 +210,7 @@ public function buildContent(UserInterface $user = NULL) {
             'class' => ['comments'],
             'data' => $tracker_data[$node->id()]->comment_count ?? 0,
             'data-history-node-last-comment-timestamp' => $tracker_data[$node->id()]->last_comment_timestamp ?? 0,
+            'data-history-node-last-comment-field-name' => $tracker_data[$node->id()]->last_comment_field_name,
           ],
           'last updated' => [
             'data' => t('@time ago', [
