![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
例えばjavascriptで下のようなコードを書いたとします。
a=new Array()
a[0]=new OBJ();
function OBJ(){
this.prop=document.getElementById('aaa')
this.prop2=document.getElementById('bbb')
}
a[0].prop.addEventListener(click,func,false);
function func(){
???
}
func()関数内でthisを使うとa[0].propを参照できます。
一方、a[0].prop2を参照するにはどうすればいいのでしょうか?
配列の要素番号を指定しないで参照させる方法が分からず悩んでいます。
下のようにもしできるのであればいいのですが。。。
a[0]とpropのオブジェクトを分割->a[0]オブジェクトを抜き出し->
a[0]オブジェクトにprop2を追加
または別の方法があるのでしょうか。
ぜひぜひご回答のほどお願いいたします。
No.1ベストアンサー
- 回答日時:
>func()関数内でthisを使うとa[0].propを参照できます。
ここで、this は、a[0].prop というより、
document.getElementById('aaa') なのでa[0]とは関係ありません。
まどろっこしいですが
例えば、こんな感じにはできます。
a = new Array();
a[0]= new OBJ();
function OBJ(){
this.prop=document.getElementById("aaa");
this.prop2=document.getElementById("bbb");
}
OBJ.prototype.func = function(){
alert(this.prop.id);
alert(this.prop2.id);
};
a[0].prop.addEventListener("click",func,false);
function func(){
a[0].func();
}
ご回答ありがとうございます。
確かにこの方法でa[0]をthisとして使えます。
少し説明が足りなかった点があったのですが、私がやりたいのはイベントリスナーで呼び出した関数(とういかオブジェクトですね)内で、配列の引数を指定せず対象の配列を使うことです。
addEventListenerの第二引数で配列要素番号を引数として渡せればいいんですけれど。。。
No.2
- 回答日時:
#1>私がやりたいのはイベントリスナーで呼び出した関数(とういかオブジェクトですね)内で、配列の引数を指定せず対象の配列を使うことです
意図するところを理解してないワケではなくて
#1で説明している通り、
>a[0].prop.addEventListener(click,func,false);
は、a[0]のオブジェクトに関してイベントを設定しているわけではありませんので、クリックイベントによって呼び出される関数(オブジェクトではない)でのthisは、id='aaa' のオブジェクト(エレメント)であってa[0]ではありません。(a[0]とは関係ない)
だから、このような(質問者の)方法ではムリです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- その他(プログラミング・Web制作) Pythonのオブジェクトの関数について 2 2023/05/11 19:15
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- Illustrator(イラストレーター) 【シェイプ形成ツール】でうまく分割できない 1 2022/05/26 10:57
- JavaScript オブジェクト配列の各メンバを任意の式で評価して、その評価値が最大のオブジェクトを返す関数はありますか 2 2023/05/20 15:02
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クラス デフォルトプロパティの...
-
evtとは
-
javaScriptでグローバル変数に...
-
JSPの処理の途中で、JavaScript...
-
VBA SORT Applyでエラー
-
JavaScriptで ブラウザの閉じる...
-
Vba SelStart、SelLen教えてく...
-
リクエスト結果が一瞬しか表示...
-
「終了していない文字列型の定...
-
ASPでエクセルの起動
-
プルダウンリストを作りMySQLか...
-
javascript で外部サイトにデー...
-
ローカルのtest.txtを1行ずつ...
-
csvファイルを読み込み、該当項...
-
C# showdialogの戻り値について
-
ラベルの色がかわってくれない
-
CreateFile、CloseHandleの繰り...
-
javascript 文字列の最後から1...
-
javascriptでサーバの時間を取...
-
jQuery ui Datepicker 明日以降...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
画面間でのJavaScrip...
-
javaScriptでグローバル変数に...
-
フォルダ内のファイル名を取得...
-
CSSのクラスを動的に変更 classで
-
イベントevt?evt.target:event....
-
タブブラウザで focus() を実...
-
event.srcElementの動的設定
-
エクセル2010のvbaについて
-
jquery か javascript で json ...
-
【javascript】プロパティ?オ...
-
JavaScriptの仕様(ECMA-262以外)
-
PHPで定義した変数を引数として...
-
javascriptでオブジェクトのメ...
-
ASP.NETでURLにマッピングされ...
-
JavaScript 日数計算の関数で演...
-
VBAの引数の指定 カッコとイコ...
-
JavaScriptでオブジェクトを識...
-
jQueryで、listの要素数を取得...
おすすめ情報