2011-10-21 67 views
0

我正在尋找一些代碼(如果可能的話,jquery),它將從鏈接中刪除任何文件擴展名。例如jquery alter links

directory/page.html to directory/page 
directory2/page2.cfm to directory2/page2 

這可能嗎?

+0

,最好使用'.htaccess'重寫的URL。這由apache使用。檢查這個工具http://www.generateit.net/mod-rewrite/ – Sotiris

+0

你爲什麼要這樣做? –

回答

0

jQuery只能爲你選擇元素,但不處理字符串。簡單的字符串操作將做到這一點:

$('a').attr('href', function(i, value) { 
    return value.substring(0, value.lastIndexOf('.')); 
}); 

lastIndexOf在IE9只支持了,所以也許你必須使用正則表達式:

return value.replace(/\..+$/, ''); 

更新:關於你的評論,這是更簡單,只需使用

return value.replace(/\.cfm$/, ''); 

您也可以通過僅選擇那些實際以0結尾的鏈接來限制鏈接集:

$('a[href$=".cfm"]') 
+0

只需刪除最後一個'。'後的所有內容。可能會破壞很多他不想修改的鏈接。像'http:// www.test.com /'就會變成'http:// www.test' –

+0

@Anthony:真的......這個問題有各種解決方案。最簡單的是,如果所有這些鏈接共享一個共同的類。如果OP提供了更多信息,答案會更好;) –

+0

嗨,大家好,在理想的世界中,我想從頁面上的所有鏈接中刪除任何'.cfm'文件擴展名。那可能嗎? – twsJames

-1

我不能完全肯定這是否會工作,但你可以嘗試使用卸下襬臂,並設置元素文件擴展名,

http://api.jquery.com/remove/

真的不知道要誠實。

也有這樣做沒有任何但是jQuery的一個簡單的方法,你可以做的是名稱的所有文件index.extension並將它們放置在從根文件夾根據,例如

new.html會重新命名爲index.html,然後放在一個名爲news的目錄中,然後當有人輸入www.yourdomain.com/news/時,它會直接打開必要的頁面,可能比jQuery簡單一些。

+0

'remove'從DOM中刪除元素。它甚至不會去除部分字符串。 –

-1
$('a[href]').each(function(){ 
    $(this).attr('href',$(this).attr('href').substring(0, value.lastIndexOf('.'))); 
}); 
如果你想有乾淨的網址,可能是搜索引擎優化的原因
+0

downvote的任何具體原因? –