javascript - 将文本替换为该文本的链接?

标签 javascript html greasemonkey

这是我之前问题的后续。我正在尝试使用 Greasemonkey 更改 <td> 中的文本指向包含该文本的链接。

所以页面包含

<td class="something"><div style="width: 200px;">
  randomtext
</div></td>

我想使用 Greasemonkey 将其更改为:

<td class="something"><div style="width: 200px;">
  <a href="www.somewhere.com/q?=randomtext">randomtext</a>
</div></td>

到目前为止,我已经拼凑了这一点代码,但我确信这是错误的方法,因为我没有取得任何进展:

// ==UserScript==
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==
(function() { 
    var reference = document.getElementsByTagName('something')
    var replacement = reference.replace(reference, "www.somewhere.com/q?=" + reference)
    document.getElementById("user-reference-value").innerHTML = replacement;
})();

我还需要做什么才能使这项工作成功?

最佳答案

忘记 jQuery,它只会减慢您的页面速度。 我还没有真正测试过这段代码,但它应该可以通过一些调试来工作:

// ==UserScript==
// ==/UserScript==
(function() { 
    // collect variables
    // you can change this to change which element you replace
    var reference = document.querySelector('td.something>div:first-child');
    var text = reference.innerText;
    var replacement = text.replace(reference, "www.somewhere.com/q?=" + reference);

    // create new anchor tag
    var a = document.createElement('a');
    a.href = replacement;
    a.innerText = text;

    // do the replacement
    reference.innerHTML = ''; // clear the old contents of the reference
    reference.appendChild(a); // append the new anchor tag into the element
})();

关于javascript - 将文本替换为该文本的链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27905306/

相关文章:

javascript - 根据子元素的值对 div 进行排序

javascript - Angular Material $mdSidenav 错误

html - 如何使 "text-justify:kashida"css 属性对除 IE 浏览器之外的阿拉伯文本产生影响

base64 - GM_getResourceURL 在 Firefox 中不适用于二进制对象,但在 Tampermonkey 中适用?

javascript - "Normal"单击按钮的方法在 Greasemonkey 脚本中不起作用?

javascript - 是否可以在 Greasemonkey 脚本中使用 worker?

javascript - React 加载第三方脚本并在之后调用该脚本中的函数

javascript - 预加载图像时设置超时

html - 如何链接到没有 .html 扩展名的页面?

javascript - 如何知道一个对象是否是使用javascript的Html文档