2011-12-06 2 views
0

私のウェブサイトでは、ユーザーが作成したデータ内のリンクをすべて記録します。だから私はリンクにIDを追加しました。jQueryはIDを持つリンクを編集します

<a href = "http://www.somewebsite.com" id = "user_created_link">Click Here</a> 

私はID user_created_linkを持っているリンク編集するjQueryの/ JavaScriptを使用する方法:私は直接コードを探していないよ

<a href = "run_link.php?url=http://www.somewebsite.com" id = "user_created_link">Click Here</a> 

を、私は機能を探していますか?またはヒント。ありがとう:)

答えて

2

IDは、ページごとに1つの要素にのみ使用されることになっています。しかし、どちらの方法は、あなたがそうのように、要素を選択し、そのhref属性を編集したいとしている(元のURLをエスケープすることを確認すること!):

// assuming you use classes instead of ids... 
$('.user_created_link').each(function (i, elem) { 
    elem.href = 'run_link.php?url=' + encodeURIComponent(elem.href); 
}); 
+1

あなたは[ 'eUC'](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent)を使用してURLをエンコードする必要があります。しかし、クラス名についての良い点。 –

2

はjQueryの.prop() + encodeURIComponentを使用してください。

$('#user_created_link').prop('href', function (i, orig) 
{ 
    return 'run_link.php?url=' + encodeURIComponent(orig); 
}); 
+0

Matt、関数呼び出しを少し変更する必要があります。現在、アイテムのインデックスをエンコードしています。例えば'function(i、orig)' http://jsfiddle.net/BPAHN/ vs http://jsfiddle.net/BPAHN/1/を参照してください。IDを使用する場合は、http:// jsfiddleという1つのマッチだけを取得します。 net/BPAHN/2/ – Scoobler

+0

本当にありがとう! 2番目の点については、それはOPのマークアップと一致するだけで、@ sdleihssirhcの答えは一意性の問題を解決します。 –

関連する問題