jQuery 和参数元素
是否正确
$('<param><div></div></param>')
这段代码产生的输出
[<param>, <div></div>]
?而对于大多数其他标签(例如:section)
$('<section><div></div></section>')
来说
[<section>...</section>]
,jquery 似乎会删除 param 元素内的元素并将它们放在旁边。我知道您通常不会将 dom 元素放置在 param 标记内。但我使用 jquery 来遍历 XML 文档,并且遇到了这个问题。
解决方法是什么?
Is it correct that this code
$('<param><div></div></param>')
produces this output?
[<param>, <div></div>]
whereas with most other tags (eg:section)
$('<section><div></div></section>')
produces
[<section>...</section>]
In other words, jquery seems to remove elements inside a param element and place them alongside it. I'm aware that you usually wouldn't be placing dom elements inside a param tag. But I'm using jquery to traverse a XML document, and have run into this issue.
What would the workaround be?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
正如我在评论中所说,jQuery 需要 HTML 而不是 XML,在 HTML 中
param
是一个自闭合标签,不能有子节点,因此 jQuery 会为您解决这个问题。您可以尝试:
这给出了:
As I said in the comment, jQuery expects HTML not XML, in HTML
param
is a self closing tag and cannot have child nodes so jQuery fixes that for you.You can try:
Which gives:
您应该开始创建一个有效的 XML 文档:
然后您可以处理此文档:
You should begin to create a valid XML document:
Then you can work on this doc:
标签 PARAM 是一个自动关闭标签,内部不能包含其他元素
。µ 应用
时,固定为
这样你就可以在 jquery 对象中得到两个元素。
例如,
也会发生同样的情况。
INPUT 是自动关闭的,这会导致
我不认为 jQuery 修复了这个问题,这只是因为 jQuery 使用
innerHTML< /代码>。
The tag PARAM is an auto-closing tag, it cannot contain other elements inside.µ
When applying
<param><div></div></param>
, it is fixed to<param><div></div>
so you get two elements in the jquery object.Same happens with
<input><div></div></input>
for instance.INPUT is auto-closing and this results into
<input><div></div>
I don't think that jQuery fixes it, it is simply because jQuery uses
innerHTML
.