3

私はJavaScriptとJQueryプログラミングにまったく慣れていません。通常、要素にアクセスするには ID を与えるので、次のように取得できます。$("#"+id).blabla().

しかし今、動的に div を作成し、その中の要素にアクセスする必要があります。

何かのようなもの

<div id="automaticallyGeneratedId">
   <div ???></div> <!-- first div -->
   <div ???></div> <!-- second div -->
</div>

各内部 div にアクセスして識別するためのベスト プラクティスは何ですか? 私は彼らのために別のIDを生成しますか? または何?

セレクターの理論が完全に明確ではありません。

edit : 単一の内部 div を識別することから、それらの多くの中から div を識別することへの質問を変更しました

4

7 に答える 7

6

を生成するときにパターンを維持できますid。例えば:

常に次のように生成するid場合: myid1, myid2, myid3...

<div id="myid1">
   <div></div>
</div>

<div id="myid2">
   <div></div>
</div>

......

次に、試すことができます:

$('div[id^=myid]').find('div').foo();

また

$('div[id^=myid] div').foo();

ここで^=は、セレクターで始まるので、で始まる人をdiv[id^=myid]選択します。dividmyid

Contain word selector を~=使用して like を使用することもできます$('div[id~=myid]')。これは、含む単語を選択divします。idmyid

id他の属性を使用する場合の代わりに。name次に、セレクターを次のように変更します。

$('div[name^=myid]')または$('div[name~=myid]')

于 2012-07-18T18:09:56.407 に答える
2

通常、その外側の div への参照が既にある場合は、find を使用してそこから検索することをお勧めします。

ID を指定するか、より一般的な方法を使用する場合は、クラスを使用できます。

<div class="subdiv">...


$('#automaticallyGeneratedId').find('div.subdiv')
于 2012-07-18T18:07:16.083 に答える
1

通常、それらを作成するときに、イベント ハンドラーなどを直接割り当てることができます。このような:

var div = $( '<div></div>' );
div.on( 'click', function() {
    // Do something when the generated div is clicked
});

// Then, add it to the DOM
$( 'body' ).append( div );

ID やクラスでそれらをわざわざ選択する必要はありません。それらは既にコードで利用可能です。

もう 1 つの方法は、イベント バブリングを使用して、同じクラスの新しく作成された要素を処理することです。これに関する良いリンクはこれです: http://beneverard.co.uk/blog/understanding-event-delegation/

于 2012-07-18T18:18:57.240 に答える
0

ID を持つ要素の div にアクセスするには:

$("#automaticallyGeneratedId div").whatever
于 2012-07-18T18:12:35.263 に答える
0

div をキャッシュする場合は、次のようなものを使用できます。

var myDiv1Child = $('div', myDiv1);
于 2012-07-18T18:20:48.063 に答える
0

要素を作成して ID またはクラスを付与したり、DOM を使用して要素にアクセスしたりするには、さまざまな方法があります。

$("html").prepend('<div id="foo"></div>');
$("#foo").doSomething();

別の方法

$("#automaticallyGeneratedId").find("div").doSomething();
于 2012-07-18T18:08:51.707 に答える