element.setAttribute 不是函数

新手上路,请多包涵

所以,我知道这已经得到解答,但之前的答案都无法使我的代码正常工作。我有一个 html 结构如下:

 <div class="form">
    <div class="formrow">
        <div class="previewcontainer">
            <object id="preview">
            <object>
        </div>
    </div>
</div>

我正在尝试将数据属性设置为这样的对象:

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

但是,我得到一个错误 preview.setAttribute is not a function

原文由 Lazarus Rising 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 796
2 个回答

或这个:

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

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

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



@Lazarus Rising 提到,

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

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

原文由 inubs 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您使用任何能够一次选择多个元素的选择器分配变量(例如 getElementsByClassNamequerySelectorAll )那么它会显示错误,因此请使用选择单个元素的任何选择器一次(例如: getElementById

原文由 Yogesh Anjana 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题