【发布时间】:2019-03-10 01:10:29
【问题描述】:
我有一个 HTML button,我想在元素中添加一个 id。但是我无法手动完成,所以我正在寻找通过 jQuery 的选项。
<div class="mejs-button mejs-playpause-button mejs-play">
<button type="button" aria-controls="mep_0" title="Play" aria-label="Play" tabindex="0"></button>
</div>
【问题讨论】:
-
但是页面加载后加上
id有什么用呢?对我来说,这似乎是一个 XY 问题。 -
这是 100% 没有意义的。如果您可以选择元素以在其上放置
id,那么您不需要在其上放置id,因为您已经选择了它... -
“我有一个 HTML 按钮,我想给元素添加一个 id。” 为什么?对我来说听起来像X/Y problem...
-
虽然这很可能是一个 XY 问题,但在有种情况下,您可能希望在创建元素后添加
id。例如,如果您从 HTML 文本创建元素,但id信息来自不安全的来源。在这种情况下,您确实希望使用 DOM 操作添加id(可能就在创建元素之后,但在将其添加到 DOM 之前)。您会这样做,因为在创建之前在 HTML 文本中更改它会是一个安全漏洞。 -
例如:
let id='from-insecure-source';let newDiv = $('<div class="mejs-button mejs-playpause-button mejs-play"><button type="button" aria-controls="mep_0" title="Play" aria-label="Play" tabindex="0"></button></div>'); newDiv.find('button').attr('id', id);是安全的,而let newDiv = $('<div class="mejs-button mejs-playpause-button mejs-play"><button ' + id + 'type="button" aria-controls="mep_0" title="Play" aria-label="Play" tabindex="0"></button></div>');不是。如果有人试图让代码运行,前者可能会以无效的 ID 结束,但代码不会运行。