如果两个 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/