Цикл по дочерним узлам текущего узла в TinyMCE - PullRequest
6 голосов
/ 02 февраля 2012

Предположим, у меня выбрана определенная таблица в TinyMCE, например:

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

Как мне пройти через tr элементы внутри этого?

Я подозреваю, что один из этих методов может быть уместным, но я так плохо знаком с классами, у меня возникают проблемы с пониманием, как их применять:

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

Ответы [ 2 ]

7 голосов
/ 02 февраля 2012

Вы можете перебрать любой узел в tinymce, как обычный html-узел, потому что на самом деле это обычные html-узлы.

Так что этого будет достаточно:

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 голос
/ 02 февраля 2012

Не имеет ли var element свойство childNodes? Это массив непосредственных дочерних элементов. Каждый из них также будет иметь свойства, которые вас заинтересуют nodeName. Сделайте рекурсивную функцию для поиска (каждый узел дополнительно имеет childNodes), пока не найдете, что nodeName=="TR".

Кстати, с jQuery было бы намного проще, если вам интересно.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...