Over at jQuery14 the full list of progress, changes and improvements, notably (amongst other things) in the .css
and .attr
methods, as well as new AJAXian improvements. Also, event multi-binding is now (finally) available!
For a while now, you’ve been able to pass a function into .attr()
and the return value of that function is set into the appropriate attribute. This functionalilty has now been extended into all setter methods: .css()
, .attr()
, .val()
, .html()
, .text()
, .append()
, .prepend()
, .before()
, .after()
, .replaceWith()
, .wrap()
, .wrapInner()
, .offset()
, .addClass()
, .removeClass()
, and .toggleClass()
.
Addtionally, for the following options, the current value of the item is passed into the function as the second argument: .css()
, .attr()
, .val()
, .html()
, .text()
, .append()
, .prepend()
, .offset()
, .addClass()
, .removeClass()
, and .toggleClass()
.
This enables code like:
// find all ampersands in A's and wrap with a span $('a').html(function(i,html){ return html.replace(/&/gi,'<span>&</span>'); }); // Add some information to the title of the anchors $('a[target]').attr("title", function(i,title){ return title + " (Opens in External Window)"; });
Watch out for backward compatibility in some cases, and possible unexpected turns…