我有以下字符串:


 < script src =“https://sys.com/lerers/adkljrver?c=28dsfsd1&w = 323434230& h = 5424523420& ord = [timestamp]& z = 0“>< / script>
< noscript>
< a href =”https:// ving-sys .com / server / asfdsfsdr.bs?cn = brd& pli = 107dsfsd486sdfds231& Page =& Pos = 1979577902“target =”_ blank“>
< img src =”https://bs.faf- sys.com/Serving/adServer.bs?c=8534&cn=displaying&pli=1073924861&Page=&Pos=77902"border = 0 width = 320 height = 50>< / a>
< ; / noscript>



 我的目标是解析src,width和height属性,而不使用正则表达式或任何类型的indexOf ()/ loop /如果是逻辑。


此解析将在浏览器中进行,因此可以使用本机浏览器功能或jQuery。


我试过这个:


 // myString等于上面的字符串
 var $ jQueryObject = $('< div>'+ myString +'< / div>');
 console.log($ jQueryObject.find('img')。attr('src'))& #xA;


 返回undefined。我认为这与尝试解析noscript和script标签中的元素有关。任何返回src,height和width元素的帮助都将受到赞赏。

答案 0 :(得分:1)
使用DOMParser将是最简单的方法 - 请参阅提供的链接中的浏览器兼容性表,特别是此WONT适用于IE9或更早版本
var parser = new DOMParser(),
ns = document.querySelector('noscript'),
doc = parser.parseFromString(ns.textContent, 'text/html'),
img = doc.querySelector('img');
console.log(img.width);
console.log(img.height);
console.log(img.src);
注意:你可以这样做,以打动女孩:
var img = (new DOMParser()).parseFromString(document.querySelector('noscript').textContent, 'text/html').querySelector('img');
console.log(img.width);
console.log(img.height);
console.log(img.src);
对于IE8 / IE9,如果你必须支持它们,你可以做类似的事情
var div = document.createElement('div');
div.innerHTML = document.querySelector('noscript').textContent;
var img = div.querySelector('img');
console.log(img.width);
console.log(img.height);
console.log(img.src);
但请注意,使用此代码
会提取图片