为庆祝jQuery的四周年生日,jQuery官方团队正式发布了jQuery 1.4版本。在这个版本中,jQuery官方团队做了大量的编码、测试和文档工作,相对之前版本自然改进不少,让我们一起来看看有哪些新变化吧。

1、为一些方法添加设置函数(Setter Functions)

在之前版本中,我们可以给attr()方法传入一个函数,将函数的返回值赋予某个属性。1.4中,这个功能被添加到了更多的方法中:.css()、 .attr()、 .val()、 .html()、 .text()、 .append()、.prepend()、 .before()、 .after()、.replaceWith(), .wrap()、 .wrapInner()、 .offset()、 .addClass()、 .removeClass()、 .toggleClass()。

此外,在下面方法中,还可以传入当前值作为设置函数的第二个参数,供设置函数使用:.css()、.attr()、.val()、.html()、.text()、.append()、.prepend()、.offset()、.addClass()、.removeClass()、和 .toggleClass()。

例如:

jQuery(’<img src=”enter.png” alt=”enter your name” />’)
.attr(”alt”, function(index, value)

{
    return “Please, ” + value;
});

2、更新了jQuery中序列化的核心方法 jQuery.param()

之前对于{foo: ["bar", "baz"]}序列化后的结果是“foo=bar&foo=baz”,现在为“foo[]=bar&foo[]=baz”。
这样更改的目的主要是告诉接收端,传入的是一个数组对象。

3、在jQuery.ajax 中可在不指定dataType属性时,会根据response的content-type自动识别。

例如:ajax请求返回的对象是json类型(application/json),则dataType会自动指定为”json”(不指定的情况下)。

4、在jQuery.ajax请求中,添加对Etag的支持。

之前jQuery在ajax请求中是在header中不发送If-None-Match值的(也就是不支持Etag),也就默认忽略了浏览器缓存。现在可以通过指定ifModified属性开启它。