Q:

element.setAttribute is not a function

So, i know that this has already been answered, but none of the previous answers managed to make my code work.  I have a html structure as the following:
<div class="form">
    <div class="formrow">
        <div class="previewcontainer">
            <object id="preview">
            <object>
        </div>
    </div>
</div>

I am trying to set the data attribute to the object like this:
var link = "http://www.someurl.com";
var preview = document.querySelectorAll ("#preview");
preview.setAttribute("data", link);

However, I get an error preview.setAttribute is not a function

A:

or this:
var link = "http://www.someurl.com";
var preview = document.getElementById("preview"); //getElementById instead of querySelectorAll
preview.setAttribute("data", link);

Be sure to run the code after the element is created, or use jQuery code:
$( document ).ready(function() {
}

"Uncaught TypeError: Cannot read property 'setAttribute' of null"
By: LazarusRising—in that case, the element doesn't exist yet in the document.  You need to run the code after the element is created, say after the load event or a script below the element.