0

ajax関数の結果からタグを見つけ、data()を使用して'file', file_number以下のような値を設定しようとしましたが、console.logに表示されません。未定義が取得されます。
私のコードに何か問題がありますか?

....success: function(html){
var result = $(html).filter('.result').html();
// console.log(result);
var file_number = $(html).find('.file_number').html();
// console.log(file_number); // will get number

// 
$(html).find('img').data('file', file_number); 
console.log($(html).find('img').data('file'));
4

1 に答える 1

1

私のコードに何か問題がありますか?

はい。複数回呼び出し$(html)ています。つまり、jQueryはHTML文字列を複数回解析し、そこから(毎回)異なるDOM要素を作成します。これらの解析されたセットの1つに加えた変更は永続的ではなく、他のセットに影響を与えることはありません。

DOM要素のこの1つのセットの結果を保存し、$(html)それに対してのみ機能します。

var $html = $(html);
var result = $html.filter('.result').html();
// console.log(result);

var file_number = $html.find('.file_number').html();

$html.find('img').data('file', file_number); 
console.log($html.find('img').data('file'));
于 2013-03-24T11:24:05.437 に答える