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