Как узнать все [0-9, az, AZ] из всех тегов [pre] и добавить для них цвет? - PullRequest
0 голосов
/ 29 января 2020

Я хочу узнать все [0-9, az, AZ] из всех тегов [pre] и добавить цвет для них

В настоящее время я делаю это только так:

Как видите, он работает только с одним тегом [pre], как он может работать со всеми тегами [pre]?

<!DOCTYPE html>


test

example1  

|      X2          T21
|-----| |----------|/|----------( Y20 )
|                |
|                |     T20
|                ------|/|----------( T21  K40 )
|
|     T20
|-----| |-----------------------( T20  K20 )

info ..

example2

|     X0           M0
|-----| |----------|/|--------------------( Y0 )
|                                        |
|                                        |
|                                        ---------( T0  K100 )
|     T0           T1
|-----| |----------|/|--------------------( M0 )
|                |
|      M0     |
|-----| |---------------------------------( T1  K50 )

Ответы [ 3 ]

0 голосов
/ 29 января 2020

Вам нужно перебрать все элементы с одинаковым именем тега.

var elements = document.getElementsByTagName('pre');
for (var i = 0; i < elements.length; i++) {
    elements[i].innerHTML = elements[i].innerHTML.replace(/([+\-]?[0-9a-zA-Z]+(\.[0-9a-zA-Z]+)?)/g, "<font color=blue>$1</font>");
}
example1  

|      X2          T21
|-----| |----------|/|----------( Y20 )
|                |
|                |     T20
|                ------|/|----------( T21  K40 )
|
|     T20
|-----| |-----------------------( T20  K20 )

info ..

example2

|     X0           M0
|-----| |----------|/|--------------------( Y0 )
|                                        |
|                                        |
|                                        ---------( T0  K100 )
|     T0           T1
|-----| |----------|/|--------------------( M0 )
|                |
|      M0     |
|-----| |---------------------------------( T1  K50 )
0 голосов
/ 29 января 2020

Вы можете сделать это так. Кроме того, вы используете тег font, которого следует избегать в пользу CSS.

. Самое простое решение - в простом JavaScript:

var preTags = document.querySelectorAll('pre');
for (var i = 0; i < preTags.length; i++) {
    var tag = preTags[i];
    tag.innerHTML = tag.innerHTML.replace(/([+\-]?[0-9a-zA-Z]+(\.[0-9a-zA-Z]+)?)/g, '<span style="color: blue;">$1</span>');
}
0 голосов
/ 29 января 2020

Вам нужно перебрать массив элементов:

var allElements = document.getElementsByTagName('pre');

for (let i = 0; i < allElements.length; i++) {
  var str = allElements[i].innerHTML;
  var newstr = str.replace(/([+\-]?[0-9a-zA-Z]+(\.[0-9a-zA-Z]+)?)/g, "<font color=blue>$1</font>");
  allElements[i].innerHTML = newstr;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...