我想知道焦点元素的样式属性。我的代码不起作用:
alert(document.activeElement.id.style.border);
但它使用以下代码显示 id:
alert(document.activeElement.id);
有什么帮助吗?我不喜欢使用 jquery 。我正在 IE 7 上做一个项目。我知道你们很多人认为 IE 7 不是浏览器。
我想知道焦点元素的样式属性。我的代码不起作用:
alert(document.activeElement.id.style.border);
但它使用以下代码显示 id:
alert(document.activeElement.id);
有什么帮助吗?我不喜欢使用 jquery 。我正在 IE 7 上做一个项目。我知道你们很多人认为 IE 7 不是浏览器。
你需要看看element.style
,不是element.id.style
。元素的 ID 没有样式。
alert(document.activeElement.style.border);
id
是相关的属性node
,style
也是节点的属性,因此替换id
为style.border
(id
除了字符串固有的属性之外,它没有自己的属性,因为它只是一个字符串)给出:
document.activeElement.style.border;
正如它所写的那样,您试图访问style
字符串的属性,该属性不存在,因此未定义。
要访问 的各个属性border
:
document.activeElement.style.borderStyle;
document.activeElement.style.borderWidth;
依此类推,以访问各个边框(等)的各个border-left
属性border-right
:
document.activeElement.style.borderLeftWidth;
document.activeElement.style.borderLeftStyle;
而且,再一次,等等……
要回复 OP 留下的评论(在另一个答案中):
但为什么这段代码:
alert(document.activeElement.style.borderColor);
显示空白警报?
问题可能是样式是在样式表中定义的,而style
属性只访问元素style
属性中的那些样式。在现代浏览器中,您需要查看window.getComputedStyle()
样式的计算渲染输出,例如:
window.getComputedStyle(document.activeElement, null).border;
Internet Explorer 具有该currentStyle
对象的替代方案(在某些版本中),但没有 IE 或 Windows,我无法提供见解。下面的参考资料中有一个链接,可将您带到 Microsoft 的文档。
参考: