// 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+"></"+tag+">";
+ });
+
// Trim whitespace, otherwise indexOf won't work as expected
var s = jQuery.trim(arg).toLowerCase(), div = doc.createElement("div"), tb = [];
// 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