设置带有javascript意外结果的样式

设置带有javascript意外结果的样式,javascript,Javascript,我正在检测浏览器并尝试应用样式 alert(BrowserDetect.browser); if(BrowserDetect.browser == "Opera") { document.getElementById(myBox).style.paddingTop = "5px"; } 警报准确地显示浏览器名称,但为什么没有应用样式?尝试在if中添加警报,看看它是否执行。很可能,Opera字符串周围有空格。尝试在if中添加一个警报,看看它是否执行。很可能,Opera字符串周围有空格。在

我正在检测浏览器并尝试应用样式

alert(BrowserDetect.browser);
if(BrowserDetect.browser == "Opera") {
    document.getElementById(myBox).style.paddingTop = "5px";
}

警报准确地显示浏览器名称,但为什么没有应用样式?

尝试在
if
中添加警报,看看它是否执行。很可能,
Opera
字符串周围有空格。

尝试在
if
中添加一个警报,看看它是否执行。很可能,
Opera
字符串周围有空格。

if
语句中放置两个
alert()
调用副本,一个在样式分配之前,一个在样式分配之后。我想你会发现第二种情况不会发生,原因有以下几种:

  • 变量
    myBox
    不存在
  • myBox
    的值不是有效DOM元素的ID
  • myBox
    没有命名有效的元素,但它不是块类型的元素,因此填充不适用

  • 您还可以尝试在另一个浏览器中使用可靠的JS调试器运行相同的代码,如启用了开发工具的Firefox+Firebug或Safari。(Preferences | Advanced。)这可能会使您更快地找到该样式分配的问题。

    if
    语句中放置两份
    alert()
    调用副本,一份在样式分配之前,另一份在样式分配之后。我想你会发现第二种情况不会发生,原因有以下几种:

  • 变量
    myBox
    不存在
  • myBox
    的值不是有效DOM元素的ID
  • myBox
    没有命名有效的元素,但它不是块类型的元素,因此填充不适用

  • 您还可以尝试在另一个浏览器中使用可靠的JS调试器运行相同的代码,如启用了开发工具的Firefox+Firebug或Safari。(Preferences | Advanced。)这可能会使您更快地找到该样式分配的问题。

    何时调用此功能?“myBox”元素可能还不存在吗?浏览器名称嗅探几乎总是一个糟糕的想法。在Opera中,你试图用额外的填充物来解决什么问题?可能有一个更简单的CSS修复程序。什么时候调用它?“myBox”元素可能还不存在吗?浏览器名称嗅探几乎总是一个糟糕的想法。在Opera中,你试图用额外的填充物来解决什么问题?可能有一个更简单的CSS修复程序。我从if语句内部发出警报,它仍然会提醒我,但样式并没有得到应用,我也尝试过应用其他样式。我对此表示怀疑。他似乎在使用QuirksMode浏览器检测JS(),这是一个非常健壮的工具。if语句内部提醒我,它仍然提醒我,但样式没有得到应用,我也尝试过应用其他样式。我对此表示怀疑。他似乎正在使用QuirksMode浏览器检测JS(),这非常健壮。我无法将样式应用于任何其他元素,id myBox存在。最后一句话……你是说有一个id为=“myBox”的HTML元素吗?如果是这样,您的问题是Javascript语法错误。您需要改为使用getElementById('myBox')。正如您所写,myBox必须是一个包含元素ID的字符串变量。我无法将样式应用于任何其他元素,ID myBox存在。最后一句话……您的意思是有一个ID为=“myBox”的HTML元素吗?如果是这样,您的问题是Javascript语法错误。您需要改为使用getElementById('myBox')。正如您所写的,myBox必须是一个包含元素ID的字符串变量。