如果两个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??-->
答案 0 :(得分:3)
id属性在HTML 4或HTML5中不能合法地包含空字符串。也就是说,选择器[id]
和[id=""]
仍会匹配这些元素,如果它们出现在不合格的文档中。请注意,空id属性与id属性的 lack 不同。
将元素的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属性,请在jQuery中使用removeAttribute()
(或removeAttr()
):
document.getElementById('something').removeAttribute('id');
$('#something-else').removeAttr('id');