繁体   English   中英

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

[英]How to change HTML Object element data attribute value in javascript

如何在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>
<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就会执行,并且“data”属性+值将被添加到object元素中。

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

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

在jquery中:

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

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

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

例如:

avatar.dataset.id = 12345;

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

document.getElementById("PdfContentArea").setAttribute('data', path);

要么

var objectEl = document.getElementById("PdfContentArea")

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

主机对象<object>的行为是由于依赖于ECMA262实现,而setAttribute()方法的set属性可能会失败。

我看到两个解决方案:

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

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

如果您使用jquery,以下代码可以正常工作

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM