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

IT技术 javascript html object
2021-02-21 02:47:13

如何在 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");
6个回答

这有效:

<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>

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

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

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

@ user587159 - 请参阅我修改后的答案。
2021-04-21 02:47:13
我试过那些但没有结果,你能发布你测试过的示例吗谢谢
2021-05-06 02:47:13

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

例如:

avatar.dataset.id = 12345;

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

优秀的 !正是我要找的。
2021-05-11 02:47:13
document.getElementById("PdfContentArea").setAttribute('data', path);

或者

var objectEl = document.getElementById("PdfContentArea")

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

在 jquery 中:

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

IE

$('a').attr('href','http://www.stackoverflow.com/')
这有效,但是当我想再次更改值时,它不起作用。例如: $ ('a') .attr ('data', 'http://www.stackoverflow.com/1.pdf') ok 再次更改 $ ('a') .attr ('href', 'http : //www.stackoverflow.com/2.pdf') 不显示。任何建议。问候
2021-05-06 02:47:13
这是jquery,不是javascript。
2021-05-18 02:47:13

宿主对象的行为<object>取决于 ECMA262 实现,并且按setAttribute()方法设置属性可能会失败。

我看到两种解决方案:

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

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