使用CSS插入链接

Sch*_*hof 12 html fogbugz hyperlink

我正在手工维护一个HTML文档,我正在寻找一种方法来自动在表格中的文本周围插入一个链接.让我说明一下:

<table><tr><td class="case">123456</td></tr></table>
Run Code Online (Sandbox Code Playgroud)

我想在我们的错误跟踪系统(顺便说一句,就是FogBugz)中自动使用类"case"的TD中的每个文本链接到该案例.

所以我希望将"123456"更改为此表单的链接:

<a href="http://bugs.example.com/fogbugz/default.php?123456">123456</a>
Run Code Online (Sandbox Code Playgroud)

那可能吗?我玩过:before和:after伪元素,但似乎没有办法重复案例编号.

Dan*_*Dan 12

不是以跨浏览器的方式工作.但是,您可以使用一些相对简单的Javascript来实现这一点.

function makeCasesClickable(){
    var cells = document.getElementsByTagName('td')
    for (var i = 0, cell; cell = cells[i]; i++){
        if (cell.className != 'case') continue
        var caseId = cell.innerHTML
        cell.innerHTML = ''
        var link = document.createElement('a')
        link.href = 'http://bugs.example.com/fogbugz/default.php?' + caseId
        link.appendChild(document.createTextNode(caseId))
        cell.appendChild(link)
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以将其应用于类似的内容onload = makeCasesClickable,或者只是将其包含在页面的末尾.


Owe*_*wen 10

这是一个特定于您发布的HTML 的jQuery解决方案:

$('.case').each(function() {
  var link = $(this).html();
  $(this).contents().wrap('<a href="example.com/script.php?id='+link+'"></a>');
});
Run Code Online (Sandbox Code Playgroud)

实质上,在每个.case元素上,将获取元素的内容,并将它们放入包裹它的链接中.