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 元素(每次)。您对其中一个解析集所做的更改不是持久的,并且不会对其他任何集产生任何影响。

存储$(html)并仅处理这一DOM 元素的结果:

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 回答