javascriptで、「@」の後ろを自動でリンク化したいです。
ある文字列があったとします。
<span class="auto">@ほげほげ</span>
これを、自動的に(class=autoがついている範囲の場合は)、
<a href="http://hoge.com/hoge.php?=ほげほげ">@ほげほげ</a>
というリンクがつくようにしたいです。
phpに渡すクエリには、@はつけたくないですが、見た目のリンクは@を含めるようにしたいです。
(区切りはスペースまで)
http://~
に関しては以下のページが参考になりました。
http://www.openspc2.org/JavaScript/Ajax/jQuery_p …
同じようなことを @~ でやりたいという意味になります。
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんな漢字でしょうかね・・・
<!DOCTYPE html>
<meta charset="UTF-8">
<title></title>
<body>
<p>
<span>aaa</span>
<span class="auto">@bbb</span>
<span class="auto">ccc@ddd</span>
<span class="test1 auto test1">@eee</span>
<span class="auto">fff</span>
<span>@ggg</span>
</p>
<script>
var a = document.createElement ('a');
a.appendChild (document.createTextNode (''));
Array.prototype.slice.call (document.getElementsByClassName ('auto'), 0)
.forEach (
function (e) {
var t = e.textContent;
var c = this.cloneNode (true);
c.href = (0 === t.indexOf ('@'))
? 'http://hoge.com/hoge.php?name=' + encodeURIComponent (t.substring (1))
: t;
c.firstChild.data = t;
e.parentNode.replaceChild (c, e);
}, a);
</script>
No.3
- 回答日時:
こんなかんじでしょうかねぇ・・・
<script>
window.onload=function(){
replace_atmark();
}
function replace_atmark(){
var nodes=document.getElementsByTagName("span");
var reg=new RegExp("(^| )auto( |$)","i");
for(var i=0;i<nodes.length;i++){
var n=nodes[i];
var v=n.childNodes[0].nodeValue;
if(n.className
&& n.className.match(reg)
&& v.indexOf("@")==0
){
var newNode=document.createElement("a");
newNode.setAttribute("href","ttp://hoge.com/hoge.php?="+v.substr(1));
newNode.appendChild(document.createTextNode(v));
n.parentNode.insertBefore(newNode,n);
n.parentNode.removeChild(n);
}
}
}
</script>
<p>
<span>aaa</span>
<span class="auto">@bbb</span>
<span class="auto">ccc@ddd</span>
<span class="test1 auto test1">@eee</span>
<span class="auto">fff</span>
<span>@ggg</span>
</p>
この回答への補足
ありがとうございます。
仰る方法で実現できました。
ただ、大変申し訳ございません、
参考サイト:
http://www.openspc2.org/JavaScript/Ajax/jQuery_p …
と同じく、
http://~
の場合は、通常のリンク、
@ほげほげ
の場合は、
http://hoge.com/hoge.php?name=ほげほげ
へのリンク、ということにしたいのですが、どうしたらよいでしょうか。
つまり、http://~と@~の場合でリンクを変えたいです。そこがうまくできませんでした。
よろしくお願いいたします。
No.2
- 回答日時:
参照サイトはjQueryを利用して解説しているようなので、jQueryを利用しています。
(全角空白は半角に)
$(function(){
var baseURL = "http://hoge.com/hoge.php?=";
$("span.auto").each(function(){
$("<a></a>").html(this.innerHTML)
.attr("href", baseURL + encodeURIComponent(this.innerHTML.replace(/^\@/, "")))
.replaceAll(this);
});
});
この回答への補足
ありがとうございます。
大変申し訳ございません、
参考サイト:
http://www.openspc2.org/JavaScript/Ajax/jQuery_p …
と同じく、
http://~
の場合は、通常のリンク、
@ほげほげ
の場合は、
http://hoge.com/hoge.php?name=ほげほげ
へのリンク、ということにしたいのですが、どうしたらよいでしょうか。
つまり、http://~と@~の場合でリンクを変えたいです。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- PHP 「teratail」での回答内容がいまいちわかりません。 1 2022/09/10 05:05
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLでサブフレームから親のス...
-
二次元配列を使って順位をだす...
-
Googleフォームで選択肢に応じ...
-
GASに文字列として関数を入れる...
-
読み込んだQRコードをフォーム...
-
①入力フォーム→②確認表示画面→③...
-
ボタンを押したあとに画像を表...
-
ソースコードのいじる場所が分...
-
GoogleChartの組織図について
-
jQueryで同じクラス名のものを...
-
ジャバスクリプトについて。
-
変数名をどのようにつけるのが...
-
Colorboxがうまく設置できません
-
フォームが空欄の時にフォーム...
-
イラストレーター、縦中横のシ...
-
画像の表示位置
-
【Google Apps Script】「ライ...
-
プログラムについて。
-
Q&A掲示板の入力フォームに文字...
-
メールフォームの日付入力フォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLでサブフレームから親のス...
-
読み込んだQRコードをフォーム...
-
初心者です。gulpでコンパイル...
-
追加ボタンを押した際に ok ボ...
-
①入力フォーム→②確認表示画面→③...
-
GASに文字列として関数を入れる...
-
二次元配列を使って順位をだす...
-
特定の文字列を複数抜き出した...
-
jQueryで同じクラス名のものを...
-
セレクトを全て選択されていな...
-
スマホ上で、左右スワイプで次...
-
React hooksが値を返して配列変...
-
GASでGoogleフォームの自動返信...
-
jsで質問です。 ボタンが二つ存...
-
ジャバスクリプトについて。
-
出発駅A、到着駅Bを選択すると...
-
階層別の組織図の自動作成について
-
セレクトボックスで配列を呼び...
-
フォームが空欄の時にフォーム...
-
【Google Apps Script】「ライ...
おすすめ情報