<span id="color">本次选择的颜色是:</span><button onclick="selColor">选择颜色</button> <script> function selColor(){ var color=Array("红色","黄色","蓝色","绿色","橙色","青色","紫色"); var num=Math.ceil(Math.random()*7)-1; document.getElementById("color").innerHTML=color[num]; } </script>这段代码为什么起不到选择颜色的效果,怎么改进
时间: 2023-07-03 17:30:17 浏览: 61
这段代码的问题在于按钮的`onclick`事件没有正确绑定到`selColor()`函数上。应该将`onclick`的属性值改为`onclick="selColor()"`。
同时,`selColor()`函数中的随机数生成代码也需要改进。`Math.ceil()`方法会将浮点数向上取整,而不是四舍五入。因此,需要使用`Math.round()`方法来进行四舍五入。另外,数组的下标是从0开始的,因此随机数的范围应该是0到6。
最终代码如下:
```
<span id="color">本次选择的颜色是:</span>
<button onclick="selColor()">选择颜色</button>
<script>
function selColor() {
var color = ["红色", "黄色", "蓝色", "绿色", "橙色", "青色", "紫色"];
var num = Math.round(Math.random() * 6);
document.getElementById("color").innerHTML = "本次选择的颜色是:" + color[num];
}
</script>
```
相关问题
vb6 richtext 高亮
在VB6中,可以使用RichTextBox控件来实现文本高亮的效果。首先,需要确保RichTextBox控件的SelectionColor属性被设置为需要的高亮颜色,然后通过代码来实现文本的高亮。
首先,使用RichTextBox控件的Find方法来查找需要高亮的文本,然后设置SelectionColor属性为高亮颜色。例如:
```vb
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.Text)
Do
FindText = "需要高亮的文本"
StartSearch = RichTextBox1.SelStart + 1
Found = InStr(StartSearch, RichTextBox1.Text, FindText)
If Found > 0 Then
RichTextBox1.SelStart = Found - 1
RichTextBox1.SelLength = Len(FindText)
RichTextBox1.SelColor = vbRed '设置高亮颜色
End If
Loop Until Found = 0
```
上面的代码会在RichTextBox控件中查找并高亮名为“需要高亮的文本”的文本。
除了设置SelectionColor属性之外,还可以通过SelectionFont等属性来改变文本的字体、大小等样式,从而实现更加丰富的高亮效果。
总之,通过在VB6中使用RichTextBox控件,并结合其丰富的属性和方法,可以比较轻松地实现文本的高亮效果。