jQuery 和参数元素

发布于 2025-01-06 04:35:26 字数 494 浏览 0 评论 0原文

是否正确

$('<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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

青春有你 2025-01-13 04:35:26

正如我在评论中所说,jQuery 需要 HTML 而不是 XML,在 HTML 中 param 是一个自闭合标签,不能有子节点,因此 jQuery 会为您解决这个问题。

您可以尝试:

$( $.parseXML( '<param><div></div></param>' ) ).children()

这给出了:

[<param>...</param>]

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:

$( $.parseXML( '<param><div></div></param>' ) ).children()

Which gives:

[<param>...</param>]
思慕 2025-01-13 04:35:26

您应该开始创建一个有效的 XML 文档:

var xml ='<param><div></div></param>';
var xmlDoc = $.parseXML( xml );

然后您可以处理此文档:

var $xml = $( xmlDoc );

You should begin to create a valid XML document:

var xml ='<param><div></div></param>';
var xmlDoc = $.parseXML( xml );

Then you can work on this doc:

var $xml = $( xmlDoc );
感情废物 2025-01-13 04:35:26

标签 PARAM 是一个自动关闭标签,内部不能包含其他元素

。µ 应用

时,固定为

这样你就可以在 jquery 对象中得到两个元素。

例如,

也会发生同样的情况。
INPUT 是自动关闭的,这会导致

我不认为 jQuery 修复了这个问题,这只是因为 jQuery 使用 innerHTML< /代码>。

document.getElementById('mydiv').innerHTML = '<param><div></div></param>';
// you'll get two child elements <param> + <div>

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.

document.getElementById('mydiv').innerHTML = '<param><div></div></param>';
// you'll get two child elements <param> + <div>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文