html - dom 元素 id 相等

标签 html dom

如果两个 DOM 元素的 id 设置为空字符串,它们是否具有相同的 id?

示例:

$('#something').attr('id', '');
$('#something-else').attr('id', '');
//do these now have the same id?
//is there a better way to unset an element's id?

这是否等于声明时没有 id 的元素

<div></div>
<div id=''></div>
<div id></div>
<!--how do these compare??-->

最佳答案

id 属性不能在HTML 4 中合法地包含空字符串。或HTML5 。也就是说,如果这些元素出现在不合格的文档中,选择器 [id][id=""] 仍将匹配这些元素。请注意,空 id 属性与缺少 id 属性不同。

在脚本中将元素的 id 属性设置为空字符串似乎可行( DOM level 4 seems to forbid it ,但这可能是新的,因为它没有在 DOM 级别 3 或 2 中指定),即使在同一文档中还有其他具有空 id 属性的元素。这意味着现在的元素确实都具有相同的 ID,但考虑到元素在符合规范的文档中不能有空 ID,我不确定该声明的真实性。请参阅以下示例:

document.getElementById('something').id = '';
document.getElementById('something-else').id = '';
div[id=""] {
  color: red;
}

#something {
  color: blue;
}
<div>No id</div>
<div id=''>Empty id</div>
<div id='something'>#something</div>
<div id='something-else'>#something-else</div>

//is there a better way to unset an element's id?

要删除元素的 id 属性,请使用 removeAttribute() (或 jQuery 中的 removeAttr()):

document.getElementById('something').removeAttribute('id');
$('#something-else').removeAttr('id');

关于html - dom 元素 id 相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30443105/

相关文章:

javascript - 如何将 .click 限制为第一个图像以避免获取存储在容器中的所有图像

html - 如何修复降低标题高度的动画?

javascript - 延迟加载 Flash 对象

javascript - 设置 innerHTML 与使用 Javascript 设置值

javascript - 选择标题标签时删除粗体和斜体格式

html - 使用 CSS 修改浏览器窗口的滚动条

javascript - 验证动态添加的表单输入 - Vanilla JS

html - 在 PHP SQL 显示的 <td> 列中居中文本

html - 浏览器如何加载图像?大拇指有必要吗?

javascript - CE-HTML开发