来自变量的JavaScript getElementsById

来自变量的JavaScript getElementsById,javascript,getelementbyid,Javascript,Getelementbyid,我想问一下,如何从JavaScript中的变量中按id获取元素。例如,我有一个包含html源代码的JavaScript变量,我想从这个变量中获取元素 例如: var html = "<html><body><div id='test'>Hi</div> ... lot of code ... <div id='test'>Hi</div><div id='test'>Hi</div> ... lot

我想问一下,如何从JavaScript中的变量中按id获取元素。例如,我有一个包含html源代码的JavaScript变量,我想从这个变量中获取元素

例如:

var html = "<html><body><div id='test'>Hi</div> ... lot of code ... <div id='test'>Hi</div><div id='test'>Hi</div> ... lot of code ... </body></html>";

var get = html.getElementsById("test");
但它不起作用


非常感谢您提供的任何帮助

您不能做您正在做的事情。你有一些问题

getElementById是单数,而不是复数getElementsById。这是因为在格式正确的html中,每个id都必须是唯一的。浏览器允许它溜过去,但它只是一个元素 getElementById是DOM上的一个方法,而不是上面所述的字符串上的方法。 我可以想出三种方法来做到这一点:

您可以尝试创建一个正则表达式来完成此操作,但这会很混乱。您需要找到'id\s+=\'+myVar+\'的每个匹配项,然后找到它周围的元素。非常混乱,但可行

更好的方法是将其加载到浏览器中,然后执行document.getElementById

更简单的是使用jquery

$(html).find('#test');
你可以试试

id应为uniquedocument.getElementById而不是html.getElementsById
var html = "<html><body><div id='test'>Hi</div> ... lot of code ... <div id='test'>Hi</div><div id='test'>Hi</div> ... lot of code ... </body></html>";

var parser = new DOMParser();
var doc = parser.parseFromString(html, 'text/html');


var get = doc.getElementsById("test");