misterunknown: DIV-Element bei Drag and Drop klonen

Beitrag lesen

Moin,

kannst du mir noch in dieser Anweisung if(zieltd.classList[0] den Teil mit [0] erklären? classList ist mir soweit klar nur das mit der Null versteh ich nicht ganz.

Ein Element kann mehrere Klassen haben, die mit Leerzeichen getrennt aufgelistet werden:

<div class="drop red bla">

Daher ist die Eigenschaft classList in Javascript _immer_ ein Array; in diesem Fall mit nur einem Element, auf das per nullbasiertem Index zugegriffen wird.

Hättest du mehrere Klassen, oder würdest mehrere erwarten, dann müsstest du die gesamte classList nach der Klasse durchforsten, die dir anzeigt, dass man hier ein Element ablegen kann. Dafür könntest du dir beispielsweise eine Funktion äquivalent zum PHP-Pendant in_array() schreiben:

function in_array(item,arr) {  
for(p=0;p<arr.length;p++) if (item == arr[p]) return true;  
return false;  
}

und die Prüfung so gestalten:

if(in_array("planning", zieltd.classList[0])) {

Das wäre beispielsweise auch für die erste Prüfung eine Alternative, in der du nur auf TD prüfst (und ob schon ein Div drinliegt). Denn momentan könnte man prinzipiell erstmal in alle Tabellen-Zellen auf der Seite ein Element ablegen, in denen kein Div-Element ist.

Grüße Marco