2016-06-22 8 views
0

Webページからすべての要素を取得し、それぞれの変数を作成することは可能ですか?各関数内で変数を作成し、要素名と同じ名前を付けることができますか?Html要素から変数を作成する

+0

DOMエレメントのすべての変数をメモリに保存しますか?私は本当にそれが良い考えではないと思う。あなたが '$()'( '$'は関数の名前の略です)を使わなければならないのはなぜですか? – demarchisd

+0

クール、ちょうど楽しみのためにしようとしたかったのですが、 –

答えて

0

用途:

var div = $('div'); 
div.click(); 
+0

はい、私はその方法を知っていますが、どのページでも使用できるように動的にする必要があります。各要素を自動的に割り当てる必要があります。 –

+0

@TeTPsyどのように完全にはっきりしないのですか?ストアド変数を使用します。あなたが記述しているのは、別々のコントローラで異なるコンテンツをロードするAngularJSを使用して行うようなものです。あなたが参照しているdiv変数は、角度指示のようなものです... – Snsa90

+0

返事ありがとう、私はちょうど楽しみのために言ったように、私はそれを誰もが自分のウェブページにスクリプトを追加することができますそれは自動的に要素などから変数を作ることができることを意味しています –

2

はい、しかし、注意してください。

要素参照がロード時に存在し、後で変更されない場合、変数に格納すると便利ですが、ロード後にdivを削除すると変数が未定義に戻ることがあります。変数が宣言された後にdivが追加されると、エラーが発生します。

hereがあります。

+0

ありがとう、ええ、練習は、ちょうど私が考えていた:) –

+1

@ TeFsy私は、カスタム機能を持つオブジェクトにクラスのすべての要素を拡張するjQueryメソッドを作成するあなたのコメントを読んできた、おそらく何をしています。メソッドを一度書くことができ、そこから各拡張要素が元の動作を取得します... – Snsa90

0

すべてのクリックイベントをバインドしたい場合は、あなただけで簡単に行うことができます要素DIV:

var div = $('div'); 
div.click(function(){ 
    //do something 
}); 
+0

誰もが自分のWebページに追加できるように、動的でなければなりません。要素の変数などから変数を自動的に作成します –

0

jQueryのセレクタとオーバーヘッドを短縮するための良い方法とページパフォーマンスがVanillaJSを使用することです:http://vanilla-js.com/

オブジェクトを選択することは、バニラJSと一番簡単なことの1つです。あなたのユースケースは何か分かりませんが、jQueryのしくみは決して使用されません。あなたが最適化を探しているなら、しばらくそれなしで生活しようとすると驚くかもしれません。短い変数で要素を取得する方法をいくつか紹介します。

ドキュメント内のすべてのdivを取得します。

var div = document.querySelector('div'); 

は、特定のdivを取得:

var divs = document.querySelectorAll('div'); 

のみ、最初のdivゲット

var div = document.getElementById('somediv'); 

あなたはすべてを制御することができますこの方法を(あなたが解決する必要のないすべての問題を解決しようとするのではなく、アラカルトの変数)。

2

あなたが言ったように、それはちょうど楽しみのためだ...ので、私は、これはトリックを行う必要があることだと思う:

$("*").each(function() { 
    const elmnt = $(this);  
    const id = elmnt.attr("id"); 

    if(id) { 
    window[id] = elmnt; 
    } 
}); 

これだけidを定義しているのDOMのための変数を作成します。しかし、あなたはあなたが望むようにルールを変更することができます。

+0

Thanks dude 、私はそれをチェックしますが、それは働くかもしれないようです:) –

関連する問題