检查元素是否合法支持 src 属性或innerHTML
有没有办法检查元素是否可以显示 innerHTML
或 $.html()
(例如具有单独结束标记的 elems)或者是一个旨在根据 HTML 规范(例如 )是否有一个
src
属性?我正在寻找快速/可靠的方法来通过 jQuery 或本机 JavaScript 来完成此操作。
编辑:根据 HTML 规范,未设计为具有内部内容的元素称为 void 元素,但也有一些像 这样的元素是完全有效的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不幸的是,没有一种万无一失的方法可以做到这一点,因为在 Javascript 中,任何元素都可以具有这些属性。
另外,看起来很奇怪,几乎所有 HTML 元素,包括
,都有一个 innerHTML 属性,即使它不能真正使用它!
最好的办法是制作一个表格来指定哪些元素具有哪些内容。
Unfortunately, there isn't a foolproof way to do this because in Javascript, any element can have those attributes.
Also, as odd at it may seem, almost all HTML elements, including
<img>
, have an innerHTML attribute, even though it can't really use it!Your best bet is to make a table that specifies what elements have what.
我想你可以
不完全可靠,因为任何元素都可以添加这些属性(JSON)。
(感谢您的修复,小偷)
I suppose you could do
Not totally reliable since any element could add those properties (JSON).
(thanks for the typeof fix, thief)
我找到了 元素列表(根据规范)允许
src
属性:因此这可以按名称进行检查:
这可以获取适当的内容:
这甚至更安全:
I found the list of elements that (according to the spec) allow the
src
attribute:So this works to check by name:
This works for getting the appropriate content:
And this is even safer: