Commit d259ec1a authored by John Resig's avatar John Resig

Fix for bug #1549, where the DOM conversion of <code/> and similar elements...

Fix for bug #1549, where the DOM conversion of <code/> and similar elements would fail. This forces it to work correctly in all browsers.
parent 7d02f06e
...@@ -12,7 +12,7 @@ test("Basic requirements", function() { ...@@ -12,7 +12,7 @@ test("Basic requirements", function() {
}); });
test("$()", function() { test("$()", function() {
expect(2); expect(5);
var main = $("#main"); var main = $("#main");
isSet( $("div p", main).get(), q("sndp", "en", "sap"), "Basic selector with jQuery object as context" ); isSet( $("div p", main).get(), q("sndp", "en", "sap"), "Basic selector with jQuery object as context" );
...@@ -29,6 +29,13 @@ test("$()", function() { ...@@ -29,6 +29,13 @@ test("$()", function() {
pass = false; pass = false;
} }
ok( pass, "$('&lt;tag&gt;') needs optional document parameter to ease cross-frame DOM wrangling, see #968" );*/ ok( pass, "$('&lt;tag&gt;') needs optional document parameter to ease cross-frame DOM wrangling, see #968" );*/
var code = $("<code/>");
equals( code.length, 1, "Correct number of elements generated for code" );
var img = $("<img/>");
equals( img.length, 1, "Correct number of elements generated for img" );
var div = $("<div/><hr/><code/><b/>");
equals( div.length, 4, "Correct number of elements generated for div hr code b" );
}); });
test("isFunction", function() { test("isFunction", function() {
......
...@@ -633,6 +633,11 @@ jQuery.extend({ ...@@ -633,6 +633,11 @@ jQuery.extend({
// Convert html string into DOM nodes // Convert html string into DOM nodes
if ( typeof arg == "string" ) { 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 // Trim whitespace, otherwise indexOf won't work as expected
var s = jQuery.trim(arg).toLowerCase(), div = doc.createElement("div"), tb = []; var s = jQuery.trim(arg).toLowerCase(), div = doc.createElement("div"), tb = [];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment