DOM building using DocumentFragment
There are several problems in your code:



What is r.price?



h5["innerHTML" || "textContent"] = obj.name makes no sense. You could just a well write h5["innerHTML"] = obj.name. Your code won't test if such properties exist.

Even h5["innerHTML"] || h5["textContent"] won't do much good, since that just returns the value of either property, so you can't use it to set it. 

You'd need to use something like 

if (typeof h5.innerHTML == "undefined") { // no need for bracket notation here any more
  h5.innerHTML = obj.name
} else {
  h5.textContent = obj.name
}


However even that isn't very nice, since the element may have innerHTML set even if the browser doesn't actually use it. 

Also innerHTML and textContent are "incompatible" to each other. For example, if you would assign the string "&lt;i&gt;Example&lt;/i&gt;" to them, then using innerHTML will parse the HTML and display the text Example (in italic), while textContent will display the literal text &lt;i&gt;Example&lt;/i&gt;.

The cleanest way would be to create and append explicit text nodes.



I don't see any benefit in using a function as the body of the for loop.



Generally building a fragment like this isn't very practical. For one it's terribly slow. For the other it's very difficult to read and makes changing the HTML structure a real bother, especially since it contains presentational information, such as Bootstraps grid classes and the clearfix elements (which IMHO are usually unnecessary nowadays).

Consider using a template mechanic of some kind. Either build something simple yourself, or use one of the plenty JavaScript template libraries, such as mustache.