javascript和DHTML影响
我已经有一段时间没有使用JavaScript了——在我获得证书后,我开始学习Perl,并一直在使用它。我只是想让我的手回到JS中,作为一个开始,我写了这个我会说的,是一个简单的小脚本,可以非常简单地更改div的边框。然而,我不知道我错在哪里。感谢您的任何建议/建议或想法。提前打电话。这是我的剧本javascript和DHTML影响,javascript,dhtml,Javascript,Dhtml,我已经有一段时间没有使用JavaScript了——在我获得证书后,我开始学习Perl,并一直在使用它。我只是想让我的手回到JS中,作为一个开始,我写了这个我会说的,是一个简单的小脚本,可以非常简单地更改div的边框。然而,我不知道我错在哪里。感谢您的任何建议/建议或想法。提前打电话。这是我的剧本 <script type="text/javascript"> var i =0; var e = document.getElementById("text"); e.style.bo
<script type="text/javascript">
var i =0;
var e = document.getElementById("text");
e.style.border = "solid black 5px";
e.style.padding = "5px";
var colors = ["red", "yellow", "blue", "green"];
function changeBorder()
{
e.border = colors[i];
i++;
var timer = setTimeout("changeBorder()", 1000);
}
window.onload=function()
{
changeBorder();
}
</script>
<div id="text">
<h1>Hello world</h1>I am Mike!.
</div>
var i=0;
var e=document.getElementById(“文本”);
e、 style.border=“纯黑5px”;
e、 style.padding=“5px”;
变量颜色=[“红色”、“黄色”、“蓝色”、“绿色”];
函数changeBorder()
{
e、 边框=颜色[i];
i++;
var timer=setTimeout(“changeBorder()”,1000);
}
window.onload=function()
{
changeBorder();
}
你好,我是迈克!。
您可能需要:
e.style.borderColor = colors[i];
那么你就需要担心我会变得比颜色的长度还要长
比如:
if (i >= colors.length) i=0;
这可能是一条路。您可能想要:
e.style.borderColor = colors[i];
那么你就需要担心我会变得比颜色的长度还要长
比如:
if (i >= colors.length) i=0;
这可能是一条路。试试这个:
var i=0;
变量颜色=[“红色”、“黄色”、“蓝色”、“绿色”];
函数更改边框(e)
{
//重新启动颜色计数器
i=i%colors.length;
e、 style.border=颜色[i]+“实心5px”
i++;
var timer=setTimeout(函数(){changeBorder(e)},1000);
}
window.onload=function()
{
var e=document.getElementById(“文本”);
e、 style.border=“纯黑5px”;
e、 style.padding=“5px”;
更改边界(e);
}
你好,我是迈克!。
e
变量只能在页面加载时创建尝试以下操作:
var i=0;
变量颜色=[“红色”、“黄色”、“蓝色”、“绿色”];
函数更改边框(e)
{
//重新启动颜色计数器
i=i%colors.length;
e、 style.border=颜色[i]+“实心5px”
i++;
var timer=setTimeout(函数(){changeBorder(e)},1000);
}
window.onload=function()
{
var e=document.getElementById(“文本”);
e、 style.border=“纯黑5px”;
e、 style.padding=“5px”;
更改边界(e);
}
你好,我是迈克!。
e
变量只能在页面加载时创建。在setTimeout中,您可以使用指向要执行的函数的指针。我包括了一个在I=4后重新启动颜色开关的机制。这里是一个示例。在setTimeout中,您可以使用指向要执行的函数的指针。我提供了一种在I=4后重新启动颜色开关的机制。可能的问题#1
如果这是页面上所有内容的运行顺序,那么e=document.getElementById(“text”)
将永远无法工作。只有在HTML构建元素之后,才能通过其ID获取该元素。Neal关于只在页面加载时获取元素的建议是可行的。或者,您可以将脚本移动到页面底部
可能的问题#2
在changeBorder
函数中,应用新颜色如下:
e.border = colors[i];
但您可能想访问e.style.border
。即使您这样做了,我的理解是,边框
是一种快捷方式样式,您可以在一个规则中定义宽度、样式和颜色。您可能需要使用类似于e.style.borderColor
的东西
可能的问题#3
这看起来还不足以成为一个问题,但请记住,当您循环使用不同的颜色时,i
变量最终将大于颜色数组的长度。为了确保不会发生这种情况,可以使用模数运算符:
e.style.borderColor = colors[i];
i = (i + 1) % 4;
奖金
如果只给setTimeout
一个函数,不带参数,那么就不需要使用引号。以下情况很好,不需要eval
功能:
setTimeout(changeBorder, 1000);
可能的问题#1
如果这是页面上所有内容的运行顺序,那么e=document.getElementById(“text”)
将永远无法工作。只有在HTML构建元素之后,才能通过其ID获取该元素。Neal关于只在页面加载时获取元素的建议是可行的。或者,您可以将脚本移动到页面底部
可能的问题#2
在changeBorder
函数中,应用新颜色如下:
e.border = colors[i];
但您可能想访问e.style.border
。即使您这样做了,我的理解是,边框
是一种快捷方式样式,您可以在一个规则中定义宽度、样式和颜色。您可能需要使用类似于e.style.borderColor
的东西
可能的问题#3
这看起来还不足以成为一个问题,但请记住,当您循环使用不同的颜色时,i
变量最终将大于颜色数组的长度。为了确保不会发生这种情况,可以使用模数运算符:
e.style.borderColor = colors[i];
i = (i + 1) % 4;
奖金
如果只给setTimeout
一个函数,不带参数,那么就不需要使用引号。以下情况很好,不需要eval
功能:
setTimeout(changeBorder, 1000);
@Kooilnc在你的例子中,你的空间不会超过4个colors@Neal:嗯,我不认为我必须为OP编写完整的脚本。这只是为了演示他的代码片段是如何工作的。@Kooilnc在您的示例中,您的空间不会超过4个字符colors@Neal当前位置我想我不必为这部作品写完整的剧本,只是为了演示他的代码片段是如何工作的;是我最初做的。。。但是,是的,我忘了考虑数组的结尾,因为它只执行一次。非常感谢!。谢谢,e.style.borderColor=colors[i];是我最初做的。。。但是,是的,我忘了考虑数组的结尾,因为它只执行一次。非常感谢!。哦,为什么?。你是说css信息和e变量定义?是的,strai