javascript - 如何使用 jQuery 应用于所有 href attr

标签 javascript jquery html

我如何将 attr 应用于我页面上的所有 href。 例如: 我有:

<ul>
    <li><a href="mylink1">mytext1</a></li>
    <li><a href="mylink2">mytext2</a></li>
    <li><a href="mylink3">mytext3</a></li>
</ul>

我需要:

<ul>
    <li><a href="javascript:myFunc(mylink1)">mytext1</a></li>
    <li><a href="javascript:myFunc(mylink2)">mytext2</a></li>
    <li><a href="javascript:myFunc(mylink3)">mytext3</a></li>
</ul>

我需要在不添加新 ID、类等的情况下执行此操作。使用 Js 和 jQuery。请帮忙! :)

最佳答案

像这样的东西应该可以工作:

$("ul li a").each(function(i, a) {
    a = $(a);
    a.attr('href', 'javascript:myFunc("' + a.attr('href') + '")');
});

Demonstration

注意:这将只应用于 ul 列表中的链接。要应用于整个页面中的所有 a 标记,请改用 $("a")...

此外,如果 href 属性包含某些字符,如 "\,此方法可能会失败。如果有这种可能,那么这更安全一些:

$("ul li a").each(function(i, a) {
    a = $(a);
    a.attr('href', 'javascript:myFunc(' + JSON.stringify(a.attr('href')) + ')');
});

关于javascript - 如何使用 jQuery 应用于所有 href attr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20704389/

相关文章:

Jquery 多重选择器标准与 Internet Explorer

javascript - 仅验证表单的可见部分

javascript - 使用 javascript/jQuery 刷新特定 div 内容

javascript - 如何撤消 .detach()?

html - 将图标放在工具栏的最左边

javascript - Angular-Kendo TreeView - 使用 div 和 span 模板

javascript - javascript 中的 return false 和 event.preventDefault 有什么不同?

javascript - 如何在 c# asp.net 中配置我的网站页面的访问控制 header ?

javascript - 将焦点设置在受控组件中表单的输入字段上

jquery - 内联日期选择器的不引人注目的验证不起作用,对于非内联日期选择器工作正常