我有一个html,它有很多以下内容:
<TD CLASS="broke"> - WF-1234567 - </TD>
<TD CLASS="broke"> - WF-1111111 - </TD>
<TD CLASS="broke"> - WF-7654321 - </TD>
我想制作一个javascript书签,用超链接替换所有7位数字。 如何做到这一点?
我尝试了许多错误......
javascript:
var match=new RegExp("(- WF-....... - Review)","ig");
var x = document.getElementsByClassName("broke").innerHTML;
x=x.replace(match,<a href="www.blah.com/"+7digitSubsetofMatch>7digitlink</a>);
document.getElementsByClassName("browseItemLocation").innerHTML=x;
答案 0 :(得分:1)
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]
将为数字
你不能在javascript中写文字html-它必须是一个字符串。
var x = elements[j].innerHTML.replace(match[1],
'<a href="www.blah.com/' + match[1] + '">' + match[1] + '</a>');
然后你cna替换原来的html。
elements[j].innerHTML = x;
}
})()
我不知道你的最后一行是什么,但似乎没必要。