我使用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
答案 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选择器。