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

Posted

技术标签:

【中文标题】如何在 javascript 中更改 HTML 对象元素数据属性值【英文标题】:How to change HTML Object element data attribute value in javascript 【发布时间】:2011-06-17 16:51:27 【问题描述】:

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

这是我正在尝试的

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

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

【问题讨论】:

你试过什么?什么没用?你能发布你的 HTML 和 javascript 吗? 【参考方案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() 方法设置属性可能会失败。

我看到了两种解决方案:

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

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

【讨论】:

【参考方案5】:

这行得通:

<html>
<head></head>
<body>

<object type="text/html" id="htmlFrame" style="border: none;" standby="loading" ></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.***.com/')

【讨论】:

这是 jquery,不是 javascript。 这行得通,但是当我想再次更改值时它不起作用。例如: $ ('a') .attr ('data', 'http://www.***.com/1.pdf') ok 再次更改 $ ('a') .attr ('href', 'http : //www.***.com/2.pdf') 不显示。任何建议。问候

以上是关于如何在 javascript 中更改 HTML 对象元素数据属性值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用javascript动态更改html中svg的文本内容

Angular X - 如何更改 index.html 中已编译 JavaScript 文件的路径 [重复]

如何使用Javascript等待值在html中更改[重复]

如何在 HTML 和 JS 文件中更改 Google Maps Javascript API 的地图 ID?

如何从 Javascript 更改 HTML 单选按钮选择?

如何使用 JavaScript 更改 embed src 的值?