The jQuery code has its own opinions on attributes and their nature, based on their names and semantics from the HTML world. That's why "required" gives you "required" as its attribute value.
You can try using .getAttribute()
directly, though its results might be browser-dependent:
jo[0].getAttribute("required");
The .prop()
function only works for HTML DOM elements because it relies on the browser creating objects with properties reflecting attribute values parsed from the source.