X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjquery%2Fjquery.js;h=038323adb8583736ac246695d1e90732f99bb3f2;hb=d259ec1a93ea087d76c02009eccaa42786f737bb;hp=4f3e03e2d75a994e763ac5bfca7f697044c46ce0;hpb=53dc6afc310aa0e5df094304996ef605d4dbbd58;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 4f3e03e..038323a 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -633,6 +633,11 @@ jQuery.extend({ // Convert html string into DOM nodes if ( typeof arg == "string" ) { + // Fix "XHTML"-style tags in all browsers + arg = arg.replace(/(<(\w+)[^>]*?)\/>/g, function(m, all, tag){ + return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area)$/i)? m : all+">"; + }); + // Trim whitespace, otherwise indexOf won't work as expected var s = jQuery.trim(arg).toLowerCase(), div = doc.createElement("div"), tb = []; @@ -728,9 +733,15 @@ jQuery.extend({ // IE elem.getAttribute passes even for style else if ( elem.tagName ) { - if ( value != undefined ) elem.setAttribute( name, value ); + if ( value != undefined ) { + if ( name == "type" && jQuery.nodeName(elem,"input") && elem.parentNode ) + throw "type property can't be changed"; + elem.setAttribute( name, value ); + } + if ( jQuery.browser.msie && /href|src/.test(name) && !jQuery.isXMLDoc(elem) ) return elem.getAttribute( name, 2 ); + return elem.getAttribute( name ); // elem is actually elem.style ... set the style