2017-05-27 29 views
-2

請幫助我。我在創建指向頁面中所有用戶名的鏈接時遇到問題。我使用javascript來替換名稱,但我只能替換一個名稱。我想用鏈接替換所有用戶名

例如,我有4個用戶名:usera,userb,userc和userd。每當這些文字顯示在頁面中,我希望它們被替換爲:

usera = <a href="link.php?user=usera">usera</a> 
userb = <a href="link.php?user=userb">userb</a> 

等等。

這是我的代碼,但我只能替換一個。

<html> 
<head> 
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<meta charset=utf-8 /> 
<title>JS Bin</title> 
</head> 
<body> 

    <h1>replacing usernames to link</h1> 

    <p> 
    usera, userb, userc, userd, userk, userks 
    </p> 

</body> 
</html> 

,這是我的javascript

var $els = $('body *'); 

$els.each(function(){ 

    $(this).html($(this).text().replace(/usera/g, '<a href="link.php?user=usera">usera</a>')); 

    //$(this).html($(this).text().replace(/userb/g, '<a href="link.php?user=userb">userb</a>')); 


}); 

只有一個用戶,我想創建一個數組,但我不知道語法。請幫幫我。

+0

'代替(/用戶A/g'要更換隻有用戶A – hassan

+0

我看到了什麼? jQuery那裏 –

+0

修復這在生成該HTML的源 – charlietfl

回答

1

最好嘗試用map()陣列功能

var $els = $('body p').text().trim().split(','); 
 
var res = $els.map(function(a) { 
 
    return '<a href="link.php?user=' + a + '">' + a + '</a>' 
 
}) 
 
$('body').append(res.join('<br>'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h1>replacing usernames to link</h1> 
 
<p> usera, userb, userc, userd, userk, userks</p>

+1

非常感謝 –

0

用字符類擴展字母a-d的檢查,這將工作,你不需要一個數組。

$(this).html($(this).text().replace(/user([a-d])/g, '<a href="link.php?user=user$1">user$1</a>')); 

演示:https://jsfiddle.net/24c6t03g/