我想用一个需要包含url的函数调用来替换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>
我已经用RegEx测试了一些方法,但我对RegEx并不擅长。有没有人能解决我的问题?
编辑: 对不起,我忘了写。我正在构建一个appcelator应用程序。我不能使用jQuery或“文档”。我认为唯一的方法是RegEx。
答案 0 :(得分:1)
尝试使用此正则表达式:
/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\')');
答案 1 :(得分:0)
如果您提供hrefs
唯一ID,则可以执行以下操作:
var val = $("#myHref").attr("href");
$("#myHref").attr("href", "javascript:anyFunction('"+val+"');");
如果你想避免使用唯一身份证,那么你可以这样做(适用于所有人):
$("a").each(function() {
var val = $(this).attr("href");
$(this).attr("href", "javascript:anyFunction('"+val+"');");
});
如果你想避免将它应用于所有的href,你可以给你想要改变一个类的所有href,然后使用这样的选择器:$(".hrefToModify")...
答案 2 :(得分:0)
NEW:
如果您可以使用javascript,那么您是否可以访问锚标记本身?如果是的话:
anchor_element.href = "javascript:anyFunction('" + anchor_element.href + "')";
OLD:
<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>