getElementsByClassName
возвращает список, ни один элемент с innerHTML
не доступен. вам придется перебирать список и обрабатывать каждый элемент в отдельности.
javascript:(function(){
var elements = document.getElementsByClassName("broke");
for (var j = 0; j < elements.length; j++) {
чтобы найти и заменить число, вам нужно настроить группировку регулярных выражений - прямо сейчас вы захватываете большую строку без способа получения цифр. Вы делаете это, перемещая скобки, чтобы сразу окружить число
var pattern = new RegExp("WF-(\\d+)", "ig");
var match = elements[j].innerHTML.match(pattern);
если у вас было успешное совпадение, то match[0]
будет соответствовать всей строке, а match[1]
будет цифрами
Вы не можете написать буквальный HTML в JavaScript - это должна быть строка.
var x = elements[j].innerHTML.replace(match[1],
'<a href="www.blah.com/' + match[1] + '">' + match[1] + '</a>');
тогда вы не сможете заменить свой оригинальный HTML.
elements[j].innerHTML = x;
}
})()
Я не знаю, что делает твоя последняя строка, но она кажется ненужной.