Javascript can';在HTML字符串中筛选HTML标记
我有一个包含一长串HTML代码的变量Javascript can';在HTML字符串中筛选HTML标记,javascript,jquery,html,Javascript,Jquery,Html,我有一个包含一长串HTML代码的变量 var myHTML = "<html lang='en'><head><title>hey</title></head><body></body></html>" 返回标题标记内的文本。我已经能够过滤并获取除HTML标记之外的其他标记。由于某些原因,这不起作用。filter(“html”).attr(“lang”)我正在尝试获取html标记中的lang属性值。
var myHTML = "<html lang='en'><head><title>hey</title></head><body></body></html>"
返回标题标记内的文本。我已经能够过滤并获取除HTML标记之外的其他标记。由于某些原因,这不起作用。filter(“html”).attr(“lang”)我正在尝试获取html标记中的lang属性值。jQuery正在过滤掉
、
和
标记,并且只包装
标记,这会导致您看到的行为
下面是一个使用本机DOMParser
对象创建新文档对象并从中提取标记的示例
现场示例:
var myHTML=“嘿”;
var parser=新的DOMParser();
var htmlDoc=parser.parseFromString(myHTML,“text/xml”);
var lang=htmlDoc.getElementsByTagName(“html”)[0].getAttribute(“lang”);
$(“正文”)。追加(郎)代码>
虽然我知道有人会因为这个建议对我大喊大叫,但我还是会使用regex。我相信这是一个有效的用例,因为文本模式是规则的
var myHTML=“嘿”;
var lang=/html lang='(\w+)/.exec(myHTML)[1];
警觉(朗)你试过$(myHTML).attr(“lang”)
?因为它是一个字符串而不是DOM。很好的解释和解决方案!为了进一步的参考,请看我喜欢这个。这可以与jquery混合使用吗?例如,我可以执行这个htmlDoc.find(“div”)@pingykricky刚刚试用过,它看起来像是$(htmlDoc).find(“html”).attr(“lang”)
可以工作。
$(myHTML).filter("title").text();