2012-02-02 6 views
6

Załóżmy, że mam konkretną tabelę wybrany w TinyMCE coś takiego:Pętla przez dzieci bieżącego węzła w TinyMCE

var ed = tinyMCE.activeEditor; 
    var selection = ed.selection.getContent(); 
    var element = ed.dom.getParent(ed.selection.getNode(), 'table'); 

Jak mogę pętla przez tr elementów wewnątrz tego?

podejrzewam jedną z tych metod może być istotne, ale jestem nowy w klasach tak, mam problemy ze zrozumieniem, jak je stosować:

TinyMCE select():http://www.tinymce.com/wiki.php/API3:method.tinymce.dom.DOMUtils.select

TinyMCE getAll():http://www.tinymce.com/wiki.php/API3:method.tinymce.html.Node.getAll

Odpowiedz

7

możesz pętli dowolnego węzła w TinyMCE jak zwykły węzeł html, ponieważ są one w rzeczywistości zwykłych węzłów html.

Więc będzie to wystarczyć:

var ed = tinyMCE.activeEditor; 
var element = ed.dom.getParent(ed.selection.getNode(), 'table'); 

var child = element.firstChild; 
while(child){ 
    if(child.nodeName.toLowerCase() == 'tr'){ 
     //do your stuff here 
    } 
    child = child.nextSibling; 
} 
1

nie var element ma właściwość childNodes? Jest to zbiór bezpośrednich elementów potomnych. Każdy z nich będzie miał dalej właściwości, w których byłbyś zainteresowany nodeName. Utwórz funkcję rekursywną do przeszukiwania (każdy węzeł ma dodatkowo childNodes), dopóki nie znajdziesz tego nodeName=="TR".

BTW, byłoby to o wiele łatwiejsze z jQuery, jeśli jesteś zainteresowany.

http://www.w3schools.com/htmldom/dom_methods.asp

http://www.w3schools.com/htmldom/dom_nodes_info.asp