我熟悉在给定参考节点之前或之前插入文本节点.但是,我想知道如何在给定节点中的文本之间插入标记.例如,
Before insertion: <p>Lorem dolor</p>
After insertion: <p>Lorem <span>ipsum</span> dolor</p>
Run Code Online (Sandbox Code Playgroud)
必须在另一个节点内的N个字符(我不需要用户的光标选择位置)之后插入span节点.那可能吗?
Gre*_*reg 14
您需要将文本放入变量中,然后将其从DOM中删除.拆分它,然后插入第一部分,然后插入span节点,然后插入第二部分.
var p = document.getElementById('myParagraph');
var text = p.childNodes[0];
// Split the text
var len = 5
var text1 = text.nodeValue.substr(0, len);
var text2 = text.nodeValue.substr(len);
var span = document.createElement('span');
span.appendChild(document.createTextNode(' dolor'));
// Remove the existing text
p.removeChild(p.childNodes[0]);
// Put the new text in
p.appendChild(document.createTextNode(text1));
p.appendChild(span);
p.appendChild(document.createTextNode(text2));
Run Code Online (Sandbox Code Playgroud)
Ser*_*sky 14
正确的方法(使用DOM-Core接口)将是:
var p = document.getElementById('myParagraph');
var text = p.childNodes[0];
var at = 5;
// create new span node with content
var span = document.createElement("span");
span.appendChild(document.createTextNode('ipsum'));
// Split the text node into two and add new span
p.insertBefore(span, text.splitText(at));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4793 次 |
| 最近记录: |