0

我想知道焦点元素的样式属性。我的代码不起作用:

alert(document.activeElement.id.style.border);

但它使用以下代码显示 id:

alert(document.activeElement.id);

有什么帮助吗?我不喜欢使用 jquery 。我正在 IE 7 上做一个项目。我知道你们很多人认为 IE 7 不是浏览器。

4

2 回答 2

2

你需要看看element.style,不是element.id.style。元素的 ID 没有样式。

alert(document.activeElement.style.border);
于 2013-11-13T22:08:51.087 回答
2

id是相关的属性nodestyle也是节点的属性,因此替换idstyle.borderid除了字符串固有的属性之外,它没有自己的属性,因为它只是一个字符串)给出:

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 的文档。

参考:

于 2013-11-13T22:09:20.517 回答