[英]How to apply to all href attr using jQuery
我如何将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') + '")');
});
注意:这仅适用于ul
列表中的链接。 适用于所有a
整个页面标签,使用$("a")...
来代替。
此外,如果href
属性包含某些字符(如"
或\\
"
,则此方法可能会失败。如果这是可能的话,那么这样会更安全一些:
$("ul li a").each(function(i, a) {
a = $(a);
a.attr('href', 'javascript:myFunc(' + JSON.stringify(a.attr('href')) + ')');
});
你可以试试
$('a').each(function () {
var att = $(this).attr('href');
$(this).attr("href", "javascript:myFunc(" + att + ")");
});
使用jQuery:
$("a[href^='mylink']").on('click', function(e) {
e.preventDefault();
myFunc($(this).attr("href"));
});
这个应该做你所需要的:
$("a").each( function() {
var url = $(this).attr('href');
$(this).attr('href', 'javascript:myFunc("'+url+'")');
});
不用修改href
而是在实际的Javascript中分配事件处理程序:
$("[href]").click(function(e){
e.preventDefault();
myFunc(this.href);
});
function myFunc(value){
alert(value);
}
JS小提琴: http : //jsfiddle.net/Rs9RH/
尝试这个:
$('li a').each(function(){
$(this).attr('href',"javascript:myFunc("+$(this).attr('href')+")");
})
我认为这可行:
$("a[href^='mylink']").each(function () {
var url = $(this).attr('href');
$(this).attr("href", 'javascript:myFunc("'+url+'")')
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.