跨多个TextNodes应用CSS

时间:2011-05-12 17:29:15

标签: dom mootools range textnode rangy

我正在寻找一种方法将CSS类应用于HTML文档中的任意文本范围。我正在使用MooTools和rangy库,如果只有一个TextNode可以处理,那么这样的工作就可以了:

createRange: function(start, end) {
    var node = this.textArea.childNodes[0]; // textArea is an HTML <span> element

    var range = rangy.createRange();
    range.setStart(node, start);
    range.setStart(node, end);

    return range;
}

这给了我一个范围,然后我可以应用CSS类;但是,如果我在TextArea中有任何HTML标记,我现在有多个TextNodes,我需要设置一个从一个开始到另一个结束的范围。如果我能在textArea中获得所有TextNode的有序列表,我想我可以这样做,但我不确定如何(或者如果)我可以获得该列表。

2 个答案:

答案 0 :(得分:0)

为什么不只是样式:: select伪?

textarea::selection {
background: #abc;
color: #abc;
}

textarea::-moz-selection {
background: #abc;
color: #abc;
}

textarea::-webkit-selection {
background: #abc;
color: #abc;
}

答案 1 :(得分:0)

Rangy有CSS class applier module,我认为会做你想做的事。