
例えば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ランキング
-
VBSを学ぶ前に、、、
-
エクセル2010のvbaについて
-
ブラウザが開いているかどうか
-
event.srcElementの動的設定
-
javascript 親オブジェクトと子...
-
タブブラウザで focus() を実...
-
チェックボックスを認識・不認...
-
画面間でのJavaScrip...
-
safariではロールオーバー機能...
-
JSでファイル数取得
-
gas 全角数字を半角数字に変換
-
JavaScriptでiframeの高さを自...
-
エディタ機能のTEXTAREAを作りたい
-
IE7でdocument.styleSheets[n]....
-
PHPを使って作成したボタンをク...
-
JavaScriptでショートカットキ...
-
JavaScriptでフォームの入力項...
-
HTAで,親ウインドウを閉じ...
-
JavaScriptを使えない環境につ...
-
javascriptでのmdb接続について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaScriptでグローバル変数に...
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
jQueryで、listの要素数を取得...
-
JavaScript 日数計算の関数で演...
-
JavaScriptは具体的に何ができ...
-
Javascript; フィールドの属性変更
-
イベントevt?evt.target:event....
-
Javascriptの全ての文法やオブ...
-
JavaScriptで複数のプロパティ...
-
CGIを呼び出した場合の戻り値を...
-
JSの「document.getElementById...
-
オライリーのプログラミングPHP...
-
split
-
エクセル2010のvbaについて
-
evtとは
-
クラス デフォルトプロパティの...
-
jquery か javascript で json ...
-
ASP.NETでURLにマッピングされ...
-
Dateオブジェクトの大小比較の...
おすすめ情報