【问题标题】:How to change HTML Object element data attribute value in javascript如何在 javascript 中更改 HTML 对象元素数据属性值
【发布时间】:2023-03-14 13:11:01
【问题描述】:

如何在 JavaScript 中更改 HTML 对象元素的数据属性值?

这是我正在尝试的

<object type="text/html" id="htmlFrame" style="border: none;" standby="loading" width="100%"></object>

 var element = document.getElementById("htmlFrame");
 element.setAttribute("data", "http://www.google.com");

【问题讨论】:

  • 你试过什么?什么没用?你能发布你的 HTML 和 javascript 吗?

标签: javascript html object


【解决方案1】:
document.getElementById("PdfContentArea").setAttribute('data', path);

var objectEl = document.getElementById("PdfContentArea")

objectEl.outerHTML = objectEl.outerHTML.replace(/data="(.+?)"/, 'data="' + path + '"');

【讨论】:

    【解决方案2】:

    在 JavaScript 中,您可以通过 Element.dataset 为数据属性赋值。

    例如:

    avatar.dataset.id = 12345;
    

    参考: https://developer.mozilla.org/en/docs/Web/API/HTMLElement/dataset

    【讨论】:

    • 太棒了!正是我想要的。
    【解决方案3】:

    如果你使用 jquery,下面的代码可以工作

    $( "object" ).replaceWith('<object data="http://www.google.com"></object>');
    

    【讨论】:

      【解决方案4】:

      主机对象&lt;object&gt; 的行为是由于ECMA262 实现依赖,setAttribute() 方法设置属性可能会失败。

      我看到了两种解决方案:

      1. 软:element.data = "http://www.google.com";

      2. hard:从 DOM 树中删除对象并创建具有更改数据属性的新对象。

      【讨论】:

        【解决方案5】:

        这行得通:

        <html>
        <head></head>
        <body>
        
        <object type="text/html" id="htmlFrame" style="border: none;" standby="loading" width="100%"></object> 
        
        <script type="text/javascript">
          var element = document.getElementById("htmlFrame"); 
          element.setAttribute("data", "attributeValue"); 
        </script>
        
        </body>
        </html>
        

        如果你把它放在一个文件中,在其中打开一个网络浏览器,javascript将会执行,并且“数据”属性+值将被添加到对象元素中。

        注意:如果您只是查看 HTML 源代码,您将看不到该属性。这是因为浏览器向您显示的是网络服务器发送的静态源,而不是动态呈现的 DOM。要检查 DOM,请使用Firebug 之类的工具。这将显示浏览器渲染的 DOM,并且您将能够看到添加的属性。

        使用 Firefox + Firebug 或 Google Chrome,您可以右键单击页面的一部分并执行“检查元素”。这将打开渲染 DOM 的视图。

        【讨论】:

        • 我已经尝试过这些但没有结果,请您发布您测试过的示例,谢谢
        • @user587159 - 查看我修改后的答案。
        【解决方案6】:

        在 jquery 中:

        $('element').attr('some attribute','some attributes value')
        

        $('a').attr('href','http://www.stackoverflow.com/')
        

        【讨论】:

        • 这是 jquery,不是 javascript。
        • 这行得通,但是当我想再次更改值时它不起作用。例如: $ ('a') .attr ('data', 'http://www.stackoverflow.com/1.pdf') ok 再次更改 $ ('a') .attr ('href', 'http : //www.stackoverflow.com/2.pdf') 不显示。任何建议。问候
        猜你喜欢
        • 2015-07-01
        • 2018-10-18
        • 1970-01-01
        • 2014-03-19
        • 2015-02-05
        • 2016-01-12
        • 1970-01-01
        • 2019-03-09
        • 2010-09-16
        相关资源
        最近更新 更多