jquery – 从$.ajax成功处理“data”:function(data){

我有这个和一个简单的问题。
$.ajax({
    type: "POST",url: "/",data: $(".form").serialize(),dataType: "html",success: function (data) {
        $("#id").html(data);
    }
});

里面的“数据”是我插入DOM的一些html。这没有问题。但是我想在这样做之前操纵“数据”。我怎样才能做到这一点?例如,“数据”中有一些li元素。例如,在将数据插入DOM之前,我将如何删除“数据”字符串中的最后一个li元素?

我尝试过类似的东西

$(data li:last)remove();

…但是没有工作。

谢谢你的帮助。

解决方法

你不需要一个隐藏的DIV。如果要将html字符串转换为DOM片段,只需在其上调用jQuery即可。在你的例子中:
success: function(data) {
    var jqObj = jQuery(data);
    jqObj.find("li:last").remove();
    $("#id").empty().append(jqObj);
}

一些IE考虑:

>如果你的数据很大,那么jQuery在IE中是很慢的(至少在jQuery 1.2.6中)。在这种情况下,您可能想为其创建一个容器,如var div = jQuery(“< div />”); div.html(数据);然后在$(“#id”)。html(div.html())之前操纵它。>如果您的数据具有无效的HTML(未封闭的标签等),您可能会在IE中遇到奇怪的故障。只要确保html格式正确。

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...