element.setAttribute 不是函数

Laz*_*ing 7 javascript object setattribute

所以,我知道这个问题已经得到了回答,但是之前的答案都没有能让我的代码工作。我有一个 html 结构如下:

<div class="form">
    <div class="formrow">
        <div class="previewcontainer">
            <object id="preview">
            <object>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我试图将数据属性设置为对象,如下所示:

var link = "http://www.someurl.com";
var preview = document.querySelectorAll ("#preview");
preview.setAttribute("data", link);
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误preview.setAttribute is not a function

inu*_*ubs 11

或这个:

var link = "http://www.someurl.com";
var preview = document.getElementById("preview"); //getElementById instead of querySelectorAll
preview.setAttribute("data", link);
Run Code Online (Sandbox Code Playgroud)

请务必在创建元素后运行代码,或使用 jQuery 代码:

$( document ).ready(function() {
}


    
Run Code Online (Sandbox Code Playgroud)

@Lazarus Rising提到,

未捕获的类型错误:无法读取 null 的属性“setAttribute”

在这种情况下,该元素在文档中尚不存在。您需要在创建元素后运行代码,例如在加载事件或元素下方的脚本之后。