人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

jQuery で ul>li をクリックしたら、liの全角文字をエンコードして、a要素のパラメータとしてセットしたいのですができますか?
訳あって、コメント行の『ここで●●にstrをセットする?』で行いたいのですが可能でしょうか?
よろしくお願いします。

●質問者: appfb
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

質問者から
<!DOCTYPE html>
<html lang="ja">
<head>
<script src="js/jquery-1.9.1.min.js"></script>
<script>
var select_id = 0;
//--- ラジオボタン
function qSelectFunc(){
if(select_id == this.id) return;
$(this).addClass("selected");
$("#" + select_id).removeClass("selected");
select_id = this.id;
var str = $("#" + select_id).text();
// ここで●●にstrをセットする?
}
$(function(){
$("ul>li").on("click", qSelectFunc);
/});
</script>
</head>

<body>
<ul>
<li id="1">あああ</li>
<li id="2">いいい</li>
<li id="3">ううう</li>
</ul>

<div class="violationLink"><a href="<{$app_violation_url}>?fbid=<{$fbid}>&str=●●" target="_self">リンク</a></div>
</body>
</html>

1 ● Cherenkov
●100ポイント ベストアンサー

こういうのはどうでしょう。ベースのURLを変数に持っている。

<!DOCTYPE html>
<html lang="ja">
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
var baseUrl = '<{$app_violation_url}>?fbid=<{$fbid}>';
var select_id = 0;
//--- ラジオボタン
function qSelectFunc(){
if(select_id == this.id) return;
$(this).addClass("selected");
$("#" + select_id).removeClass("selected");
select_id = this.id;

// ここで●●にstrをセットする?
var str = encodeURIComponent($(this).text());
var url = baseUrl + '&str=' + str;
var violationLink = $('.violationLink a');
violationLink.attr('href', url);

}
$(function(){
$("ul>li").on("click", qSelectFunc);
});
</script>
</head>

<body>
<ul>
<li id="1">あああ</li>
<li id="2">いいい</li>
<li id="3">ううう</li>
</ul>

<div class="violationLink"><a href="<{$app_violation_url}>?fbid=<{$fbid}>" target="_self">リンク</a></div>
</body>
</html>


もしくはリンクURLの &str= から & までの範囲を置換するタイプ。

<!DOCTYPE html>
<html lang="ja">
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
var select_id = 0;
//--- ラジオボタン
function qSelectFunc(){
if(select_id == this.id) return;
$(this).addClass("selected");
$("#" + select_id).removeClass("selected");
select_id = this.id;

// ここで●●にstrをセットする?
var str = encodeURIComponent($(this).text());
var violationLink = $('.violationLink a');
violationLink.attr('href', violationLink.attr('href').replace(/&str=[^&]*/, '&str=' + str));

}
$(function(){
$("ul>li").on("click", qSelectFunc);
});
</script>
</head>

<body>
<ul>
<li id="1">あああ</li>
<li id="2">いいい</li>
<li id="3">ううう</li>
</ul>

<div class="violationLink"><a href="<{$app_violation_url}>?fbid=<{$fbid}>&str=●●" target="_self">リンク</a></div>
</body>
</html>

Cherenkovさんのコメント
間違えた。初回しか書き換えてなかった。ちょっと待って下さい

Cherenkovさんのコメント
回答を更新しました

appfbさんのコメント
ご回答ありがとうございます。 返信が遅くなり失礼しました。 2案どちらも希望通り動作を確認いたしました。 ありがとうございます! 『 &str= から & までの範囲を置換するタイプ』で行こうと思います。 ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ