我有HTML文本的输入值,其中包含html标记,如下所示
<input type="hidden" value="<!DOCTYPE html><html amp4email><head></head><body>...Content...</body></html>" id="ampHtml" />尝试脚本:
var __amp_content = $("#ampHtml").val();
var __attr = jQuery(__amp_content).find('html').attr('amp4email');
if (typeof __attr !== 'undefined' && __attr !== false) {
alert('Fail');
} else {
alert('Success...');
}如何在以下基础上显示警报:
发布于 2022-11-07 07:23:27
看起来,jQuery在解析后只包含<body>标记的内容,在本例中,这只是一个文本节点。您想要的信息不在结果对象中。
一种选择是使用DOMParser。无论如何,像jQuery这样的大型库是不需要的。
const ampContent = document.querySelector('#ampHtml').value;
const doc = new DOMParser().parseFromString(ampContent, 'text/html');
const attribute = doc.documentElement.getAttribute('amp4email');
console.log('Has attribute:', attribute !== null);<input type="hidden" value="<!DOCTYPE html><html amp4email><head></head><body>...Content...</body></html>" id="ampHtml" />
https://stackoverflow.com/questions/74343058
复制相似问题