Avatar billede thaman65 Nybegynder
08. april 2003 - 13:10 Der er 2 kommentarer og
1 løsning

Slet raekker og kolloner i wysiwyg

Jeg vil gerne have 4 funktioner der ved kald kan indsætte og slette rækker og kolloner i en wysiwyg editor.
Jeg er ikke så habil til javascript, men jeg har tilegnet mig noget kode der fungerer ved hjælp af en switch sætning.

Kan dette ikke laves om således at det bare bliver 4 funktioner jeg så kalder med en knap?

//// DELETE ROW
case 'delRow' :

  switch(selRangeDo.tagName) {
  case 'TR' :
    rowIndex = selRangeDo.rowIndex;
    parentTable = selRangeDo.parentElement.parentElement;
    parentTable.deleteRow(rowIndex);
    break;
  case 'TD' :
    cellIndex = selRangeDo.cellIndex;
    parentRow = selRangeDo.parentElement;
    rowIndex = parentRow.rowIndex;
    parentTable = selRangeDo.parentElement.parentElement.parentElement;
    parentTable.deleteRow(rowIndex);
    break;
  }
  break;
 
  ///// DELETE COLUMN
  case 'delCol' :
  switch(selRangeDo.tagName) {
  case 'TD' :
  cellIndex =  selRangeDo.cellIndex;
  rowIndex = selRangeDo.parentElement.rowIndex;
  parentTable = selRangeDo.parentElement.parentElement.parentElement;
  newTable = parentTable.cloneNode(true);
  for(var x=0; x<newTable.rows.length; x++) {
    newTable.rows[x].deleteCell(cellIndex);
  }
  parentTable.removeNode(true);
  selRange.pasteHTML(newTable.outerHTML);
    /*
  if(parentTable.hasChildNodes) {
    alert('table columns deleted!');
    parentTable.removeNode(true);
  }*/
  break;
  }
 
////// INSERT ROW
  break;
  case 'insRow' :
  switch(selRangeDo.tagName) {
  case 'TABLE' :
    parentElement = selRangeDo;
    newTable = selRangeDo.cloneNode(true);
    newRow = newTable.insertRow();
    for(var x=0; x<newTable.rows[0].cells.length; x++) {
    var newCell = newRow.insertCell();
    }
    parentTable.removeNode(true);
    selRange.pasteHTML(newTable.outerHTML);
  break;
  case 'TBODY' :
    parentTable = selRangeDo.parentElement;
    newTable = selRangeDo.cloneNode(true);
    newRow = newTable.insertRow();
    for(var x=0; x<newTable.rows[0].cells.length; x++) {
    newCell = newRow.insertCell();
    }
    parentTable.removeNode(true);
    selRange.pasteHTML(newTable.outerHTML);
  break;
  case 'TR' :
    rowIndex = selRangeDo.rowIndex;
    parentTable = selRangeDo.parentElement.parentElement;
    newTable = parentTable.cloneNode(true);
    newRow = newTable.insertRow(rowIndex+1);
    for(var x=0; x<newTable.rows[0].cells.length; x++) {
    newCell = newRow.insertCell();
    }
    parentTable.removeNode(true);
    selRange.pasteHTML(newTable.outerHTML);
  break;
  case 'TD' :
    parentRow = selRangeDo.parentElement;
    rowIndex = parentRow.rowIndex;
    cellIndex = selRangeDo.cellIndex;
    parentTable = selRangeDo.parentElement.parentElement.parentElement;
    newTable = parentTable.cloneNode(true);
    newRow = newTable.insertRow(rowIndex+1);
    for(var x=0; x<newTable.rows[0].cells.length; x++){
    newCell = newRow.insertCell();
    }
    parentTable.removeNode(true);
    alert("ins row new");
    selRange.pasteHTML(newTable.outerHTML);
  break;
  }
  break;
 
////// INSERT COLUMN
  case 'insCol' :
  switch(selRangeDo.tagName) {
 
  case 'TABLE' :
    newTable = selRangeDo.cloneNode(true);
    for(var x=0; x<newTable.rows.length;x++) {
    newCell = newTable.rows[x].insertCell();
    }
    newCell.focus();
    selRangeDo.outerHTML = newTable.outerHTML;
  break;
 
  case 'TBODY' :
    newTable = selRangeDo.cloneNode(true);
    for(var x=0; x<newTable.rows.length;x++) {
    newCell = newTable.rows[x].insertCell();
    }
    newCell.focus();
    selRangeDo.outerHTML = newTable.outerHTML; 
  break;
 
  case 'TR' :
    newTable = selRangeDo.parentElement.parentElement;
    newTable = newTable.cloneNode(true);
    for(var x=0; x<newTable.rows.length;x++) {
    newCell = newTable.rows[x].insertCell();
    }
    newCell.focus();
    selRangeDo.outerHTML = newTable.outerHTML;     
  break;
 
  case 'TD' :
    cellIndex = selRangeDo.cellIndex;
    rowIndex = selRangeDo.parentElement.rowIndex;
    parentTable = selRangeDo.parentElement.parentElement.parentElement;
    newTable = parentTable.cloneNode(true);
    for(x=0; x<newTable.rows.length; x++) {
    newCell = newTable.rows[x].insertCell(cellIndex+1);
    }
    parentTable.outerHTML = newTable.outerHTML;
  break;
 
  }
  break;
  }
}
Avatar billede thaman65 Nybegynder
08. april 2003 - 13:11 #1
Min iframe hedder hovededitor hvis det skulle indsættes hist og her :)
Avatar billede thaman65 Nybegynder
08. april 2003 - 20:33 #2
Hallo er der ikke eksperter på eksperten? :D
Avatar billede thaman65 Nybegynder
13. april 2003 - 19:51 #3
Ok så lukker og slukker vi.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester