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

时间:2012-02-02 02:15:54

标签: javascript tinymce

假设我在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 个答案:

答案 0 :(得分:7)

你可以像普通的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 :(得分:1)

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