簡體   English   中英

如何使用jQuery應用於所有href attr

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM