javascript - 更改文本节点的样式但不更改子节点

标签 javascript jquery css

我正在尝试创建一个可折叠的层次结构。我在其中试图突出显示用户正在扩展的地方。我试图将 font-weight 属性设置为 BOLD 以突出显示。但这也是所有 child 的亮点。

<ul>
    <li id="A">A
         <ul>
            <li id="A_1">1</li>
            <li id="A_2">2
                <ul>
                    <li id="A_2_2.1">2.1</li>
                    <li id="A_2_2.2">2.2</li>
                </ul>
            </li>
         </ul>
     </li>
  </ul>

我在这里尝试做的是如果用户选择 A>2>2.2 。我将突出显示 3 个 li 节点的文本节点。

$('li').on('click', function (event) {
     event.preventDefault();
     $('ul:first',event.target).toggle("slow");
     document.getElementById($(event.target).attr("id")).setAttribute("style","font-weight:bold");
     event.stopPropagation();
});

这里的问题是,当我运行上面的代码时,它会突出显示所有列表,而不仅仅是文本节点。

最终应该是这样的

**A**
  1
  **2**
    2.1
    **2.2**

最佳答案

子元素将默认为 font-weight: inherit

如果您不希望它们从其父元素继承值,则必须显式地将值设置为其他值。

或者,将要设置样式的文本节点包裹在另一个元素(例如跨度)中,然后将其设为粗体。

关于javascript - 更改文本节点的样式但不更改子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29948343/

相关文章:

html - 页面顶部的空白

javascript - 为类设置初始值

javascript - RequireJS 构建错误 [RangeError : Maximum call stack size exceeded]

javascript - 如何缩小包含 css 代码的 javascript 文件

jQuery 导致 "Synchronous XMLHttpRequest on the main thread is deprecated"警告

css - 如何在页面上的特定div中加载超链接

javascript - 从 html 文件中删除 Javascript 对象

javascript - 用javascript去掉剩余的值?

javascript - 自动播放用 javascript 创建的 html 音频

jquery - stackoverflow 风格的通知栏