Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将文本转换为链接的脚本_Javascript_Html_Regex_Tampermonkey - Fatal编程技术网

Javascript 将文本转换为链接的脚本

Javascript 将文本转换为链接的脚本,javascript,html,regex,tampermonkey,Javascript,Html,Regex,Tampermonkey,这里还有一个可怜的人,他不能在Tampermonkey/Greasemonkey中进行文本替换。我正在处理一系列表行,如下所示: <table class="table table-striped table-hover"> <tr> [a bunch of header cells] </tr> <tr> <td>412</td> <td>

这里还有一个可怜的人,他不能在Tampermonkey/Greasemonkey中进行文本替换。我正在处理一系列表行,如下所示:

<table class="table table-striped table-hover">
    <tr>
        [a bunch of header cells]
    </tr>
    <tr>
        <td>412</td>
        <td>An image</td>
        <td>A thing</td>
        <td>A person</td>
        <td>A place</td>
    </tr>
    <tr>
        <td>3789</td>
        <td>An image</td>
        <td>A thing</td>
        <td>A person</td>
        <td>A place</td>

[一组标题单元格]
412
形象
一件事
人
地方
3789
形象
一件事
人
地方
我想将每个数字转换为此表单的链接:

        <td><a href="https://mydomain.com/workflow/index.html?
             endrun=1&submit=Edit&record=3789">3789</a></td>

(在?之后的换行符正好适合此处的页面;URL中不应该有实际的换行符。)

表中有多行;每一个都以一个我想链接的数字开始。在网站的某些页面上,数字是每行的第三或第四项,而不是第一项。每页只有一个表。我不想更改标题行中的第一个单元格,因为这些单元格已经可以单击并用于排序,我不想链接任何单词,只想链接数字


我看了看,但我不太明白如何使任何建议的答案适合我的情况。(我正在用Chrome运行Tampermonkey,但希望Greasemonkey的答案对我有用。)我将非常感谢您的帮助。

这应该可以为Tampermonkey提供帮助

只需要将名称空间更新为您希望它运行的名称空间。 如果站点已经使用jQuery,那么您也可以放弃require属性

/==UserScript==
//@name更新程序
//@名称空间http://stackoverflow.com/
//@version 0.1
//@description输入一些有用的内容
//@match-http://*/*
//@copyright 2012+,你
//@需要http://code.jquery.com/jquery-2.1.1.min.js
//==/UserScript==
$(文档).on(“就绪”,函数(){
$(“table.table-striped td:first child”)。每个(函数(e,i){
var this$=$(this);
var q=this$.html()
如果(/^\d+$/ig.test(q)){
这是$.html(“”);
}
});

});如果不使用jQuery,也可以执行以下操作:

    var cells = [];
    var coll1 = document.getElementsByTagName('TH');
    var coll2 = document.getElementsByTagName('TD');
    for (var i = 1; i < coll1.length; i++) {
        cells.push(coll1[i]);
    }
    for (var i = 0; i < coll2.length; i++) {
        cells.push(coll2[i]);
    }
    for (var i = 0; i < cells.length; i++) {
      var cellValue = cells[i].innerHTML;
      var number = cellValue.match(/\d+/)[0];//get first number in a cell
      cells[i].innerHTML = cellValue.replace(/\d+/, '<a href="https://mydomain.com/workflow/index.html?endrun=1&submit=Edit&record=' + number + '">' + number + '</a>');
   }
var单元格=[];
var coll1=document.getElementsByTagName('TH');
var coll2=document.getElementsByTagName('TD');
对于(变量i=1;i
编辑
使用了你的链接

document.queryselectoral(“tr td:first child”).forEach(函数(a){a.innerHTML=a.textContent.link(“);”));谢谢你,这工作得很好!我添加了一个版本,在第三列的一个页面上使用了td:nth child(3)(为什么不一致的UI将导致我的死亡)。我从未使用过jquery,因此非常感谢您的帮助。语法
$(文档)。在(“ready”,handler)
上。只需说
$(function(){…})
See恐怕对我也不起作用,但谢谢你的建议。在我发布之前,我对它进行了有趣的测试,成功地将所有数字(除了第一个数字)替换为链接。将其用作window.onload()函数。出了什么问题?