我想对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>
答案 0 :(得分:2)
字符串不是文档,因此不能通过getElementById
等DOM方法遍历。听起来你想将字符串视为dom选择,然后对其运行查询。 querySelector
允许您对一大块DOM或整个文档运行查询,以便您可以使用它。 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