• ベストアンサー

idを使わずにonclickで自身の要素取得

javascriptで <a href="XXX.XXX" title="ゴール" onclick="element()">test</a> function() { idを使わずにここにtitle属性のゴールを習得する方法を記述したいのですが、わかりません よろしくお願いします }

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 ==== HTML <a href="" title="ゴール" onclick="getTitle(this);return false;">test</a> <a href="" title="スタート" onclick="getTitle(this);return false;">test2</a> ==== JavaScript function getTitle ( obj ) { var title = obj.getAttribute('title'); alert ( title ); } こういうことでしょうか。 違っていたらすみません。

html58
質問者

お礼

ありがとうございます こういうことです^^ 引数にthisが使えるんですね javascript始めたばかりなので勉強になります さっそく使ってみます

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

こういうことでしょうか? <script> function sampleFunc(obj) { alert(obj.title); return false; } </script> <a href="#" title="ゴール" onclick="return sampleFunc(this);">test</a> もしくはこんな風に <script> try{ document.addEventListener ('click',function(e){clickfunc(e)},true); }catch(e){ document.attachEvent('onclick',function(e){clickfunc(e)}); } function clickfunc(e){ var t = (e.srcElement || e.target); if(t.nodeName=="A"){ alert(t.title); if(e.preventDefault)e.preventDefault(); else e.returnValue = false; } } </script> <a href="#" title="ゴール">test</a>

html58
質問者

お礼

使えました ありがとうございます 今回はブログのカスタマイズで入れるのでコードの短いものを使わせていただくことにします そこでもう一つ疑問が出たのですが 2つ目のコードはオブジェクトなんでしょうか? tryが入ってるからそうなのかなと思っただけで中身に何が書いてあるのか勉強しないとわからないのですが、オブジェクトのほうがブラウザの負担が軽くなりそうなので勉強したいと思ってます

関連するQ&A

  • JavaScriptでエレメントのIDを取得

    JavaScriptで、エレメントのIDを取得する方法がわからず困っています。 [画像]ここをクリック [画像]ここをクリック 上記が画面配置のイメージなのですが、「ここをクリック」の文字をクリックした時に、そのクリックされた<a>タグのIDを取得したいのです。 以下が試行錯誤したソースの一部です。 [html] <img src="./test_01.gif" name="testImg01"> <a href="javascript" id="test_01" onclick="getID(this);">ここをクリック</> <img src="./test_02.gif" name="testImg02"> <a href="javascript" id="test_02" onclick="getID(this);">ここをクリック</a> [JavaScript] function getID(element) { var id = document.getElementById(id); alert(id); } 上記コードで得られたのは「null」という値でした。 色々検索してはいるのですが、思うように値を取得できません。 どうか知恵をお貸しください。

  • onClickへの代入について

    以前onClickへの代入方法についてお聞きしましたが、 また壁にぶつかっておりますので教えてください。 バナーのクリック数をカウントするために、GoogleAnalyticsの以下の関数をaタグのonClickに追加して利用しています。 <a href="xxx.html" onClick="javascript:urchinTracker(\'/test/test\');"><img src="xxx.gif"></a> これは問題ないのですが、 Javascriptで画像を切り替えるため以下のような構成でテストしたところ、 src、href、targetは正常に代入されるのですが、 onClickのみjavascript:urchinTracker(\'/test/test\');のままで、/test/aaaが代入されません。 また、元のHTMLソースからonClickタグ自体を削除すると、onClickタグそのものが代入されません。※Firebugで確認しています。 Javascritpt(sample_chg.js)部分 myImage = new Array(4); myImageName = 0; myImageLink = 1; myImageTarget = 2; myImageOnclick = 3; myImage[myImageName] = "dummy01.gif"; myImage[myImageLink] = "http://xxxxx.com/"; myImage[myImageTarget] = "_blank"; myImage[myImageOnclick] = "javascript:urchinTracker(\"/test/aaa\");"; function myChange(){ document.getElementById("myFormImg").src = myImage[myImageName]; document.getElementById("myLink").href =myImage[myImageLink]; document.getElementById("myLink").target =myImage[myImageTarget]; document.getElementById("myLink").onClick =myImage[myImageOnclick]; } HTML部分 <a id="myLink"onClick="javascript:urchinTracker(\'/test/test\');"><img id="myFormImg"></a> <script language="javascript" type="text/javascript" src="/js/sample_chg.js"></script> <script language="javascript" type="text/javascript"> myChange(); </script> 以前文字列については関数にして代入せよと教えていただいたのですが、 このような場合はどうすればよいのでしょうか。 どうぞよろしくお願い致します。

  • onclickは良くないのですか

    以前、こちらでJAVAScriptはonclickで動作すると 教えて頂き、a タグにそのように記述しています。 ところが、こちらのページでそれは宜しくないと 記述されており、大変衝撃を受けています。 http://d.hatena.ne.jp/HolyGrail/20080515/1210861489 質問1 aタグのonclickはプロの方はほとんど使ってないといいます。 やはり上記なような理由でよく使われてないのでしょうか。 質問2 JQueryを使った次のコードが紹介されていました。 どうもこれがベストな方法なようです。 $(document).ready(function(){ $('#clickevent').click(function(){ alert('clicked'); }); }) alertのところにonloadで実行する関数を置けば いいのかなと思います。 ただ、aタグで指定している<img>の設定がよくわかりません。 aタグのname属性なんかでidを指定するのでしょうか? コードを変えてもいいのかすら検討ができていません。 ご教授のほどをお願いします。

  • jQueryでクリックされた要素のidを関数で取得

    以下のようなソースで、クリックされた要素のidをアラートで出したいとき、class: alphabetのa要素ををクリックすると、undefinedと出ます。 関数でthisを使うと呼び出し元のことを指さないので、クリックされた要素のidは出ないということなのですが、こういった場合、クリックされた要素のidを取得して、表示したい場合はどのようにすればよいか教えてください。 [htmlソース] <a class='alphabet' id='a' href='' onclick="return false;">A</a> <a class='alphabet' id='b' href='' onclick="return false;">B</a> <a class='alphabet' id='c' href='' onclick="return false;">C</a> <script src="jquery.min.js"></script> <script type="text/javascript"> $(function(){ $('.alphabet').click(function(){ function alertAlphabet(){ alert($(this).attr('id')); }; alertAlphabet(); }); }); </script>

  • 関数内でonclickをさせたい

    以下に示すような動作をさせたいのですが、手段はあるでしょうか? ご教示の方よろしくお願いいたします。 <html> <head> <script type="text/javascript"> function test1(){ ここでtest2というリンクをクリックしたことにしたい。 document.getElementById("test2").onclickとか勘でやってみたけどダメでした。 } </script> </head> <body> <img src="hoge.jpg" name="test1" onclick="test1();"> <a href="hoge.html" id="test2">test2</a> </body> </html>

  • 関数内でonclickし、必要部分を表示させたい

    Q&Aサイトを作成しており、自己解決できない問題に直面し、大変困っております。 <理想の動作> 答え1の「こちら」をクリックしたら、「100.質問」がクリックされた状態にし、 答え2の部分を表示させるようにしたいのです。 答え1の「こちら」をクリックしたら、答え2の部分を表示させるようにアンカーを 設定しているつもりですが、うまく飛びません。 記述方法を検索して、色々試したのですが、なかなか自己解決できません。 ヒントでも構いませんので、どのように記述すればいいのか教えて頂けませんか? よろしくお願いいたします。 <script type="text/javascript"> <!-- function Aanswer(n) { var target = document.getElementById('answerbox'+n); if( target.style.display != "block" ) { target.style.display = "block"; } else { target.style.display = "none"; } } function myLink01() { location.href = "test.html#show02"; } // --> </script> <title>TEST</title> </head> <body> <dl> <dt onclick="Aanswer(1)">1. 質問</dt> <dd id="answerbox1" onclick="Aanswer(1)">答え1<br /><a href="javascript:myLink01()">こちら</a>を参照してください。</dd> </dl> <dl> <dt onclick="Aanswer(2)">100. 質問</dt> <dd id="answerbox2" onclick="Aanswer(2)"><a name="show02">答え100</a></dd> </dl> </body> </html>

  • onclickで表示/非表示させている動きに、別ページからリンクさせるには

    JavaScript初心者です。 A.htmlを作成し、リンクをクリックするとidとnumberを呼び出すことで、同じhtml内に存在する3つのページが1つだけ表示されるように、cssとJavaScriptで表示/非表示させています。 【JavaScript】 function Page(id, nu){ Num = new Array ('01', '02', '03'); for (i=0; i<3; i++) { if(Num[i] == num){ document.getElementById(id + Num[i]).style.display = "block"; } else { document.getElementById(id + Num[i]).style.display = "none"; } }; } 【CSS】 #test01 {display:block;} #test02 {display:none;} #test03 {display:none;} 【html】 <a href="javascript:void(0);" onclick="Page('test','01')">link1</a> <a href="javascript:void(0);" onclick="Page('test','02')">link2</a> <a href="javascript:void(0);" onclick="Page('test','03')">link3</a> <div id="test01">  ・・・ </div> <div id="test02">  ・・・ </div> <div id="test03">  ・・・ </div> このとき別のhtml(B.html)から、A.htmlのid="test02"が表示された状態にリンクを作成することはできるのでしょうか? 恐れ入りますがよろしくお願い致します。

  • onclickで2個指定するには?

    例えば、下記のような二つの指定があるします。 function checkd1(){ document.FORM.CHECK1.checked=true } function checkd2(){ document.write("テスト"); } これをonclickで二つとも指定するということはできるのでしょうか? <a href="#" onclick="checkd1()">ボタン</a> <a href="#" onclick="checkd2()">ボタン2</a> を<a href="#" onclick="checkd1(),checkd2()">ボタン</a>としても動いてくれないので、書き直すのではなく、このまま二つを指定したいのですが、どうすればよいのでしょうか?

  • javascriptにてonclickを無効

    javascriptにてonclickを無効にしたい 下記のように、onclickイベントキャンセルを書きましたが、 onclickのjavascriptが実行されます。 何かヒントはありませんか? <html> <head> <script language="JavaScript"> document.onclick = function(e) { event.returnValue = false; } </script> </head> <body> <a href="a.htm" onclick="alert('onclick');">onclick有り</a> <a href="a.htm">onclick無し</a> </body> </html> ※環境 Windows2000(sp4)+ie6(sp1)

  • javascript内でのhtmlのID取得

    実現したいこと: クリックされたa(アンカー)のIDによって、次に表示されるHTML内でのデフォルト処理を変えたい。 test1.html : AとBいう文字にtest2.htmlへのリンクが記載されている。 <a href="http://test2.html" id="test_1" title="A">A</a> <a href="http://test2.html" id="test_2" title="B">B</a> test2.html : 地図C、文字A、文字Bが記載されている (文字Aにマウスを持ってくるとマウスオーバーによって、地図C上のDという位置の画像が光るようになっている。逆もしかり、地図C上のDという位置にマウスをもってくると文字Aが光る) (文字Bにマウスを持ってくるとマウスオーバーによって、地図C上のEという位置の画像が光るようになっている。逆もしかり、地図C上のEという位置にマウスをもってくると文字Bが光る) test2.html-------- <!-- 地図--> <div id="mapimg"> <IMG id="myIMG1" src="../img/map/1f/map.jpg" width="433" height="469" border="0" usemap="#chizu"></div> <a href="http://○○○.html" id="test_1" onMouseover=" ChengeColorOn('test_1'); image1.start(1);" onMouseout=" ChengeColorOff('test_1'); image1.stop(0);" title="A">A</a> <a href="http://○○○.html" id="test_2" onMouseover=" ChengeColorOn('test_2'); image1.start(1);" onMouseout=" ChengeColorOff('test_2'); image1.stop(0);" title="B">B</a> <map name="chizu"> <AREA shape="rect" coords="137,105,148,116" href="http://○○○.html" title="TEST1" onMouseover=" ChengeColorOn('test_1'); image1.start(1);" onMouseout=" ChengeColorOff('test_1'); image1.stop(0);" > <AREA shape="rect" coords="137,105,148,116" href="http://○○○.html" title="TEST1" onMouseover=" ChengeColorOn('test_2'); image2.start(1);" onMouseout=" ChengeColorOff('test_2'); image2.stop(0);" ></map> javascript-------- var ToggleImage = function(d,w){ var c=0,t,o,m=0,g=[];while(o=arguments[2+m])(g[m++]=new Image).src=o; this.start = function(n){h(n)||(c=n),this.stop(c),t=setInterval((function(_){return function(){_.next()}})(this),w)}; this.next = function(n){c=h(n)?c+1:n,document.getElementById(d).setAttribute('src',g[c*=c<m].src)}; this.stop = function (n){h(n)||this.next(n);t&&clearInterval(t),t=0}; function h(n){return'undefined'===typeof n} }; var image1 = new ToggleImage( 'myIMG1', 300, '../img/map/1f/map.jpg', '../img/map/1f/7.jpg', '../img/map/1f/map.jpg' ); var image2 = new ToggleImage( 'myIMG1', 300, '../img/map/1f/map.jpg', '../img/map/1f/36.jpg', '../img/map/1f/map.jpg' ); //地図から文字への反転 IDを取得し、文字色と背景を変更する function ChengeColorOn(ID){ document.getElementById(ID).style.color = "#ffffff"; document.getElementById(ID).style.backgroundColor = "#09F";} 自分なりに考えた流れ: test1.html 1)A文字又はB文字(a(アンカー))がクリックされた時、javascript内でクリックされたa(アンカー)のIDを取得。 2)クリックされてaのhrefに記載されていたURL(test2.html)に飛ぶ時に1)で取得したIDを一緒に飛ばす。 test2.html 3)javascriptで2)で飛ばしたIDを取得。 4)元々はページ内でマウスオーバーによって変わる処理をIDによってonload(Aという文字をクリックしてtest2.htmlページを開いたときにデフォルトで地図C上のDが光るように)処理する。 ちなみにtest1.htmlには上記に記載したスクリプト以外に prototype.js effects.js の2つを使っています。 以上を実現したいのですが私では力不足です。 助けてください。ご授言をよろしくお願いいたします。

専門家に質問してみよう