javascript - 在 javascript 中设置子字符串的样式

标签 javascript styles substring

您好,我正在尝试使用 javascript 设置子字符串的样式。这是我的代码:

function runtest(){
    document.getElementById("test1").innerHTML.substring(0,2).style.fontStyle="italic";
}

substring 函数有效,但是当我添加样式时,错误控制台给我一个“未定义”的错误。如何使用 javascript 设置此子字符串的样式?

最佳答案

两种选择:

  1. innerHTML 解决方案。 警告:这将删除您正在处理的元素中任何元素的所有事件处理程序。我在这里提到它主要是为了指出这一点:

    var elm = document.getElementById("test1");
    var html = elm.innerHTML;
    elm.innerHTML = '<span style="font-style: italic">' + html.substring(0, 2) + '</span>' + html.substring(2);
    
  2. 使用 splitText .在这里,我假设您要在跨度中换行的文本是元素中的第一个 文本节点。这不会弄乱元素上的事件处理程序:

    var elm = document.getElementById("test1");
    var node = elm.firstChild;
    var span = document.createElement('span');
    node.splitText(2);
    span.style.fontStyle = "italic";
    elm.insertBefore(span, node);
    span.appendChild(node);
    

    splitText 在原来只有一个的地方创建两个相邻的文本节点,分割点位于您指定的偏移量处。然后我们取第一个并将其包装在 span 中。

    Live Example | Live Source

关于javascript - 在 javascript 中设置子字符串的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18048025/

相关文章:

javascript - Aptana Eclipse 插件和 Dojo 自动完成

javascript - 具有重要 HTML 标记的 jQuery 事件委托(delegate)?

javascript - 使用react-aad-msal 测试组件

android - 更改搜索 View 自动完成下拉列表的背景颜色

html - 将 Dojo 样式应用于按钮时显示的两个按钮

python - 为什么索引超出范围的子字符串切片有效?

regex - perl 可以用正则表达式替换多个子字符串吗?

javascript - Parse.com 云作业 : Array of pointers missing entries and containing null

java - 如何查看字符串的第一个字符是否是某个字符,如果是,则执行操作(无法正常工作)

css - HTML div bg 颜色超出屏幕