javascript - 复制和分配文档对象的本地方法

标签 javascript html dom

我想对 String 对象执行 document.getElementById() 方法。


String.prototype.getElementById = document.getElementById;
test = new String('<p id="para1">Irgendein Text</p>');
console.log(test.getElementById("para1"))

以上尝试返回:Uncaught TypeError: Illegal invocation

有没有办法对字符串执行 getElementByID 方法?

编辑:

谢谢很有魅力:

var test = (new DOMParser()).parseFromString('<dummy/>', 'text/xml');
test.getElementsByTagName('dummy')[0].innerHTML = '<p id="para1">Irgendein Text</p>';
console.log(doc.getElementById('para1'));

返回 <p id="para1">Irgendein Text</p>

最佳答案

字符串不是文档,因此不能通过 getElementById 等 DOM 方法对其进行遍历。听起来您想将字符串视为 dom 选择,然后对其运行查询。 querySelector 允许您对 DOM block 或整个文档运行查询,以便您可以使用它。 document.querySelector('#id') 将生成与 document.getElementById('id') 相同的元素集。

将字符串转换为 DOM 的一种简单方法是将其设置为另一个元素的 innerHTML。所以

var wrapper= document.createElement('div');
wrapper.innerHTML= '<p id="para1">Irgendein Text</p>';
console.log(wrapper.querySelector('#para1')); // your p tag

另见 Converting HTML string into DOM elements?

关于javascript - 复制和分配文档对象的本地方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38622994/

相关文章:

php - Html5 联系表 - javascript 和 php 验证问题

javascript - 拖动父元素时拖动子元素 - jquery ui draggable

javascript - 解析 JSON 函数

html - ="number"类型的输入在 Chrome (Mac OS Catalina 10.15) 上跳了两个

PHP DOM Parser - 获取两个已知 XPath 之间的所有节点

html - 为什么重复 ID 不会引发错误?

JavaScript:我有一个数组。我想检查第一个元素是否是字段集

javascript - 如何在 React 中渲染表单?

javascript - 默认情况下将链接设置为事件

php - 未定义索引 : PHP checkbox