Hallo @ulf-wagner der Code sieht eigentlich schon sehr gut aus, es fehlt nur eine Kleinigkeit: function setLocation(row) { const deviceId = row.down('td[data-property="GeraeteID"] span').textContent.trim(); const locationId = row.down('td[data-property="APStandortID"] span').textContent.trim(); } Die erste Änderung: ich verwende down anstatt von select - das ist eine Methode die der bequemlichkeit dient select liefert immer ein Array an gefundenen Elementen, down selectiert nur das "zuerst gefundene". Ich habe außerdem den Selector angepasst, sodass dieser nun direkt das <span> Element in der Zelle selektiert. Die zweite Änderung: wir verwenden textContent um den "text" Inhalt des <span> Elements auszulesen - alternativ könnte man auch sowas nutzen wie innerHTML - das würde allerdings den HTML Link auslesen, probier das mal mit "APStandortID". Das Ergebnis wäre: <a href="/i-doit/?objID=1295">1295</a> ... Aber du möchtest ja vermutlich nur 1295. Letzte Änderung: Aus technischen Gründen beinhalten die Spalten immer ein Leerzeichen - durch trim() wird dieses entfernt. Um potentiellen JS Fehlern zu entgehen kann der Code auch so geschrieben werden: function setLocation(row) { const deviceCell = row.down('td[data-property="GeraeteID"] span'); const locationCell = row.down('td[data-property="APStandortID"] span'); let deviceId = null; let locationId = null; if (deviceCell) { deviceId = deviceCell.textContent.trim(); } if (locationCell) { locationId = locationCell.textContent.trim(); } } Das sichert nur ab, das die Selektoren tatsächlich etwas gefunden haben Ich hoffe das hilft weiter! Viele Grüße Leo