循环通过TinyMCE中当前节点的子节点

Loop through children of current node in TinyMCE

本文关键字:节点 子节点 TinyMCE 循环      更新时间:2023-09-26

假设我在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

您可以像普通html节点一样循环遍历tinymce中的任何节点,因为它们实际上是普通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;
}

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