在多行<div>标记中更改以*开头的行的颜色

时间:2016-09-07 17:32:25

标签: javascript jquery

我编写了一个作为语法荧光笔的程序。剩下的唯一问题是语言应该将 * 符号指定为注释,如果它们出现在每行的开头。但是,如果它们出现在任何其他字符之后,则它们被视为乘法运算符而不是注释符号。

代码以 标记编写。因此,程序必须检查div的内容,如果以 * 开头,则更改每行的颜色。这真的让我感到烦恼,所以任何帮助都会受到赞赏。

例如,假设我有以下代码块:

<div>
This is some code 
* This is a comment
notComment = 10 * 10 
</div>

在此示例中,第二行应转向注释,而第三行不是注释。

如果每行代码都以单独的<div>标记开头,那么解决方案很简单。但由于每个标记都可以包含一大块代码,因此会变得很麻烦。

1 个答案:

答案 0 :(得分:2)

这样的事情:

&#13;
&#13;
const elements = document.querySelectorAll('div');

[...elements].forEach(el => {
  if (el.textContent.startsWith('*')) {
    el.classList.add('comment');
  }
});
&#13;
.comment {
  color: lightgray;
}
&#13;
<div>Line 1</div>
<div>Line 2</div>
<div>* Line 3</div>
<div>* Line 4</div>
<div>Line * 5</div>
&#13;
&#13;
&#13;