0

$('#1').data('title')属性を抽出していたときはdata-titleうまくいきました。

問題:を使用してdata-titlediv の子である要素からすべての属性を抽出しようとすると、エラーが発生します。これを行う適切な方法は何ですか?#collection$.each()Uncaught TypeError: Object 0 has no method 'data'

JS コード

$.each( $('#collection').children(), function(index, child) {
    $('#result').append( child.data('title') );
});

</p>

jsfiddle: http://jsfiddle.net/J5Fjf/2/

4

5 に答える 5

3

これは機能します。

$('#result2').html( $('#collection #1').data('title') );

$.each( $('#collection').children(), function() {
    $('#result').append( $(this).data('title') );
});
于 2012-12-21T06:42:14.063 に答える
2
$('#collection').children().each( function(index, child) {
    $('#result').append( $(child).data('title') );
});

each() の 2 番目の引数はネイティブ DOM 要素で、最初の引数はループのインデックスです。jQuery の一連の要素を反復処理する場合、それぞれを連鎖関数として使用することもできthis、ループ内の要素を参照することもできます。

于 2012-12-21T06:40:50.327 に答える
1

each()がの場合、最初の引数はindex2 番目を使用します。

$.each( $('#collection').children(), function(index, child) {
    $('#result').append( $(child).data('title') );
});
于 2012-12-21T06:39:29.930 に答える
0

私はあなたが内部のdivのインデックスをキャッチする必要があると思います、#collectionそしてあなたの代わりにあなたが繰り返すために$.each使うことができます:.each

$('#collection div').each(function(i) {
    $('#result ul').append('<li>' + $('#a'+parseFloat(i+1)).data('title')+'</li>');
});

フィドルをチェックアウトする: http://jsfiddle.net/J5Fjf/4/

于 2012-12-21T07:29:00.593 に答える
0

これを試して、

$.each( $('#collection').children(), function(index, child) {
  $('#result').append( child.data('title') );
});
于 2012-12-21T06:54:00.393 に答える