我目前正在寻找一种方法,可以根据提供的HTML字符串找到DOM元素。 我有一个像这样的字符串
attribute_class
所有子项均已删除的地方。 使用此字符串,我希望能够在文档中找到相应的DOM元素。我无法接触到孩子,因为他们也占用了很多存储空间。
我已经尝试过在jQuery中解析它,但是该元素不存在-我认为是因为内脏消失了。
谢谢
答案 0 :(得分:1)
应该是这样的
var htmlString = '<div class="s-navigation s-navigation__muted s-navigation__sm" style="color: red"></div>';
function findByString(str){
var tag = str.match(/^<(\S+)/)[1];
var attrs = str.match(/([^\s="]+="[^"]+")|([^\s=']+='[^']+')/g);
var q = tag+attrs.map(t => '['+t+']').join('');
return document.querySelector(q);
}
var el = findByString(htmlString);
console.log(el);
<div class="s-navigation s-navigation__muted s-navigation__sm" style="color: red">
<div id="some-child element"></div>
</div>
<div id="dont select me" style="color: beautiful"></div>
但是说实话,我真的不明白为什么要用这种方式存储它们,而不是存储选择器来找到它(在最坏的情况下是id或属性列表)