2012-09-22 148 views
0

我使用的是免費的PunBB腳本和鏈接到用戶配置文件是這樣的:/u1/u2/u3如何添加類鏈接,個變量

我tryng創建一個工具提示當有人將光標移到用戶鏈接,但首先,我需要向這些鏈接添加一個類,但我不知道如何,因爲它對每個用戶都不相同。

對於單個鏈接我用:

$(function() { 

    jQuery('a').each(function() { 
     if(jQuery(this).attr("href") == "/u1") { 
      $(this).addClass('profile'); 
     } 
    }); 

}); 
+0

爲什麼不添加類服務器端? –

+0

你可以在每個你想要突出顯示的標籤上放一類「userlink」嗎? –

回答

1

嘗試的indexOf,並更改/ U1到更具體的喜歡/ USR1,/ USR2

$(function() { 

jQuery('a').each(function() { 
    if(jQuery(this).attr("href").indexOf("/usr") != -1) { 
     $(this).addClass('profile'); 
    } 
}); 

}); 
+0

我會假設如果URL結構可以改變,只需包含CSS類而不使用Javascript – doublesharp

2

試試這個:

$('a[href^="u/"]').addClass('profile') 
0

您可以使用正則表達式模式匹配用戶鏈接

// pattern match /u999 
var uregex = /\/u\d+/; 

$(function() { 
    jQuery('a').each(function() { 
     // get href value 
     var href = jQuery(this).attr("href"); 
     // test to see if it matches the user profile pattern 
     if(uregex.test(href)) { 
      $(this).addClass('profile'); 
     } 
    }); 
}); 
+0

謝謝,它工作。 –

1

正如其他答案中所提到的,我假設你不能僅僅將該類添加到HTML輸出中。如果你可以修改腳本,我建議這樣做,否則,一般的方法上面會的工作,但我認爲這將是性能和精確度更好的結合:

$(function() { 
     // Only fetch link elements with HREF beginning with "/u" 
     $('a[href^="/u"]').each(function() { 
      // For each of these elements, make sure its HREF actually matches the pattern 
      // "/u" + <digits> before adding class 
      if (/^\/u\d+$/.test($(this).attr('href'))) { 
       $(this).addClass('profile'); 
      } 
     }); 
    }); 
+0

D'oh!用更好的錨點選擇器,你的效率肯定更高。值得注意的是,正則表達式只能用於寫入的相關鏈接,如果它是絕對的,將導致測試失敗。 – doublesharp

+0

好點...這一切都非常kludgy :) – LinusR