在ajax的结果中使用data()

时间:2013-03-24 11:21:02

标签: jquery ajax

我试图在ajax函数的结果中找到一个标记,并使用data()来设置值'file', file_number,如下所示,但我在console.log中看不到它,undefined就是我得到的。
我的代码有问题吗?

....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'));

1 个答案:

答案 0 :(得分: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'));