将 href 替换为 js 函数调用
Replace a href with a js function call
我想用需要包含网址的函数调用替换 href 中的 url。
例:我有以下字符串:
<a href="www.google.com">Google</a>
some other text
<a href="www.wikipedia.org">Wikipedia</a>
我想找回这样的字符串:
<a href="javascript:anyFunction('www.google.com');">Google</a>
some other text
<a href="javascript:anyFunction('www.wikipedia.org')">Wikipedia</a>
我已经用正则表达式测试了一些方法,但我对正则表达式并不擅长。有人能解决我的问题吗?
编辑:对不起,我忘了写。我正在构建一个应用程序。我不能使用jQuery或"document"。我认为唯一的方法是正则表达式。
试试这个正则表达式:
/href="([^"]+)/g
这是它的用法示例(JsFiddle Demo)
var subject = '<a href="www.google.com">Google</a>some other text<a href="www.wikipedia.org">Wikipedia</a>';
var result = subject.replace(/href="([^"]+)/g, 'href="javascript:anyFunction(''$1'')');
如果您为hrefs
提供唯一的 ID,则可以执行以下操作:
var val = $("#myHref").attr("href");
$("#myHref").attr("href", "javascript:anyFunction('"+val+"');");
如果你想避免唯一ID,那么你可以这样做(应用于所有a):
$("a").each(function() {
var val = $(this).attr("href");
$(this).attr("href", "javascript:anyFunction('"+val+"');");
});
如果你想避免将其应用于所有 href,你可以给所有你想要更改的 href 一个类,然后使用这样的选择器:$(".hrefToModify")...
新增:
如果你可以使用javascript,那么你可以访问锚标签本身吗?如果是这样:
anchor_element.href = "javascript:anyFunction('" + anchor_element.href + "')";
老:
<a id="link1" href="www.google.com">Google</a>
some other text
<a id="link2" href="www.wikipedia.org">Wikipedia</a>
<script>
document.getElementById('link1').addEventListener('click', function(e) {
alert('hello');
e.preventDefault();
return false;
});
</script>
相关文章:
- 调用php数组中的JS函数
- 是否可以在使用headerphp函数后自动调用JS函数
- 全局窗口热键在最小化chrome窗口时调用js函数
- Angularjs从纯JS函数调用$scope.function
- JS函数调用
- 在JS函数调用后加载php函数
- Chrome 扩展程序 - 在 JS 函数调用后运行脚本
- 在 JS 函数调用链中丢失上下文
- 为什么我的onClick js函数调用每次页面加载只工作一次
- 将 href 替换为 js 函数调用
- 一次使用后销毁JS函数调用
- js函数调用,参数值来自<p: commandButton>
- 在js函数调用中嵌入一个select值
- Js函数调用帮助需要
- JS函数调用从AS3与复杂对象的参数
- 我如何测试Sinon.js函数调用的顺序
- 通过泛型JS函数调用AJAX后发生的调试PHP错误
- JS函数调用不工作
- 简单js函数调用的引用错误
- 当我的.js文件加载时,我如何执行js函数调用