Javascript 在使用jquery追加之前对html进行更改
我正在使用ajax调用一个页面,并使用jquery对其进行更改 但是,在将其追加到div之后,这些更改不会反映出来 虽然对html进行了更改,但html变量保持不变 如何更改html变量,然后附加到DOM 如果我将代码直接用于DOM,则DOM中以前的元素将发生更改 代码Javascript 在使用jquery追加之前对html进行更改,javascript,jquery,Javascript,Jquery,我正在使用ajax调用一个页面,并使用jquery对其进行更改 但是,在将其追加到div之后,这些更改不会反映出来 虽然对html进行了更改,但html变量保持不变 如何更改html变量,然后附加到DOM 如果我将代码直接用于DOM,则DOM中以前的元素将发生更改 代码 $.ajax({ type: "POST", url: 'more_images.jsp', data: ({uid:uid, aid:aid, imgid:imgid}) , cache: false, success: fu
$.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问题在于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);
看起来您需要在附加变量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');
...
你的代码有问题。 据我所知,ajax请求返回附加到#images_list元素的html代码 成功函数的html参数包含该html代码。 $(html).filter('.corner all').corner('5px'); 没有道理。您正在尝试访问html选择器。我会这样做:
$('#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()
);
html
在本例中是一个变量,$的响应。ajax
callAn extra.end()
调用在第三次filter
调用之后需要。此代码不适用于“html”中的复杂dom,代码将只附加更改的元素,而不是所有元素…@Pradyut-啊,对不起;您需要在其中添加另一个“.end()”—我将更新答案。@Pradyut—是的,代码将适用于“复杂DOM”,并且(根据我刚才所做的更改)它将附加所有元素。顺便说一句,我希望附加到ol,但现代浏览器会自动关闭ol。。。如何删除最后一个元素,然后将其附加到DOM中???@Pradyut您的意思是要将$images
的子元素附加到$(“#images_list”)
?