プロが教えるわが家の防犯対策術!

do until DS_CD.eof

response.write "<td class=''><a href=""#"">" & DS_CD.fields("cd") & "</a></td>"

このDS_CD.fields("cd")をループで回して取得していまして、この値をonclickで取得しようとすると、どうしてもループした全ての値が取得されてしまいます。
でも、求めたいのはリンクをクリックしたテキスト(1つの値)です。
リンクをクリックしたaタグのテキストだけを取得するにはどうしたらいいのでしょうか?

質問者からの補足コメント

  • do until DS_CD.eof

    response.write "<td class=''><a href=""#"">" & DS_CD.fields("cd") & "</a></td>"

    DS_CD.movenext
    loop

    実行結果:
    aaaaa
    bbbbb←これをクリックしたらbbbbbが受け取れるようにしたい
    cccccc
    ddddd

      補足日時:2020/07/22 11:18
  • HAPPY

    function check2(){
    var a=event.target;
    cdp=a.textContent;
    console.log(cdp);
    }

    event.targetを使い、このようにjavascriptを書いたら、onclickでaタグの値をそれぞれ取得することができました!

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/07/22 11:55

A 回答 (2件)

No1です



出力側(?)の断片しか記述がないし、質問者様の意識はそこにしかないようなので、よくわかりませんけれど、HTML Documentの話であるなら、document側でどうなっているのかが問題になるはずです。

いまいちよくわからないままですが、document要素で全てのリンクタグを監視するものとするなら…

document.addEventListener('click', (e)=>{
if(e.target.nodeName == 'A') console.log(e.target.textContent);
});

とか。
    • good
    • 0
この回答へのお礼

何度もすみません、一応event.targetを使用したら、クリックしたaタグの値を取得することができました!
ありがとうございます。
jsのコードはこれです。

function check2(){
var a=event.target;
a=a.textContent;
console.log(a);
}

html
response.write "<a href=""#"" onclick=""check2();"">" & DS_CD.fields("cd") & "</a>"

aタグが複数ある中で、クリックしたところのaタグの文字が欲しかっただけです。
例:
aaaaa
bbbbb←ここをクリックしたら"bbbbb"が受け取れる
cccccc

お礼日時:2020/07/22 14:11

こんにちは



>onclickで取得しようとすると、~~
ということから想像すると、HTMLをブラウザで表示中のクリック動作だとは思いますが、処理をどのように実装しているのかが不明です。

・それぞれのリンク要素にイベントを設定しているのなら、thisまたはevent.currentTargetなどで発生要素を取得できます。
・親要素などで包含的にイベントを監視しているような場合は、event.targetで発生要素を取得できるものと思います。
https://developer.mozilla.org/ja/docs/Web/API/Ev …
この回答への補足あり
    • good
    • 1
この回答へのお礼

ご解答ありがとうございます。

データベースからeofするまで値をループで取得しています。
その値をaタグに入れて、リンクをクリックするとその値を保持したまま次のページに遷移するようになっています。
そして、クリックした値だけを取得したいので、その方法について質問しています。

ところが、ループして値を取得しているので、aタグの値を受け取ろうとクリックすると、ループしたものが全て出てきてしまいます。

お礼日時:2020/07/22 11:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!