在使用jquery追加之前对html进行更改

时间:2011-02-28 15:17:52

标签: javascript jquery

我使用ajax调用页面并使用jquery

对其进行更改

但是在将其附加(附加)到div

后,更改不会反映出来

因为对html进行了更改,但html var保持不变。

如何更改html var然后附加到DOM

如果我直接将代码用于DOM,那么DOM中的先前元素将会发生变化

代码

$.ajax({
type: "POST",
url: 'more_images.jsp',
data: ({uid:uid, aid:aid, imgid:imgid}) ,
cache: false,
success: function(html)
{

    html = $.trim(html);
    $(html).filter('.corner-all').corner('5px');

    $(html).filter('ol.c_album > li .img_c').corner('3px');
    $(html).filter("ol.c_album > li ").find('a').attr('target', '_blank');
    $('#images_list').append(html);

}
});

感谢

Pradyut

4 个答案:

答案 0 :(得分:2)

问题是DOM元素是从字符串创建的,然后由其他函数修改。对字符串的更改

创建一个jQuery选择,缓存它,修改它,然后追加它:

$images = $(html);
$images.filter('.corner-all').corner('5px');

$images.filter('ol.c_album > li .img_c').corner('3px');
$images.filter("ol.c_album > li ").find('a').attr('target', '_blank');
$('#images_list').append($images);

答案 1 :(得分:2)

我会这样做:

$('#images_list').append($(html)
  .filter('.corner-all').corner('5px').end()
  .filter('ol.c_album > li .img_c').corner('3px').end()
  .filter("ol.c_album > li ").find('a').attr('target', '_blank').end()
);

答案 2 :(得分:0)

看起来你需要在添加变量之前重新分配变量html

...
html = $(html).filter('.corner-all').corner('5px');

html = $(html).filter('ol.c_album > li .img_c').corner('3px');
html = $(html).filter("ol.c_album > li ").find('a').attr('target', '_blank');
...

答案 3 :(得分:0)

你的代码有问题。 据我所知,你的ajax-request返回你追加到#images_list元素的html代码 成功函数的html参数包含该html代码。 $(HTML).filter( '角都 ')一角(' 为5px')。 没有意义。你试图访问html选择器。