【发布时间】:2010-01-19 05:34:12
【问题描述】:
我是 JavaScript 新手。我使用 JavaScript 开发了一个页面,当我选择一种颜色时,它会作为背景应用于整个页面。
我想开发一个只能更改文本颜色的页面。它应该被改变(从红色到绿色或类似的东西),但页面不应该被刷新,只有选定的内容或文本颜色应该被改变。
任何人都可以帮助我吗?关于如何开发它的任何想法?提前致谢。
【问题讨论】:
标签: javascript
我是 JavaScript 新手。我使用 JavaScript 开发了一个页面,当我选择一种颜色时,它会作为背景应用于整个页面。
我想开发一个只能更改文本颜色的页面。它应该被改变(从红色到绿色或类似的东西),但页面不应该被刷新,只有选定的内容或文本颜色应该被改变。
任何人都可以帮助我吗?关于如何开发它的任何想法?提前致谢。
【问题讨论】:
标签: javascript
我认为 Sarfraz 对答案的重写是这样的:
<script>
document.getElementById('change').onclick = changeColor;
function changeColor() {
document.body.style.color = "purple";
return false;
}
</script>
您要么必须将此脚本放在页面底部,就在结束 body 标记之前,要么将处理程序分配放在名为 onload 的函数中 - 或者如果您使用的是 jQuery,则可以使用非常优雅的 @987654322 @
请注意,当您以这种方式分配事件处理程序时,它会将功能从您的 HTML 中移除。另请注意,您将其设置为等于函数名称 - no ()。如果您执行了onclick = myFunc();,则该函数将在设置处理程序时实际执行。
我很好奇——您知道如何编写脚本更改背景颜色,但不会更改文本颜色?奇怪:)
【讨论】:
做这样的事情:
<script>
function changeColor(id)
{
document.getElementById(id).style.color = "#ff0000"; // forecolor
document.getElementById(id).style.backgroundColor = "#ff0000"; // backcolor
}
</script>
<div id="myid">Hello There !!</div>
<a href="#" onclick="changeColor('myid'); return false;">Change Color</a>
【讨论】:
document.getElementById(id) 的低效使用和有问题的事件注册
document.getElementById 这样的方法。至于事件注册,通常认为将表示和逻辑混合在一起是不好的形式。更多信息可以在这里阅读:quirksmode.org/js/events_early.html
function func()
{
document.getElementById('text').style.fontSize='50px';
document.getElementById('text').style.color='blue';
}
<p id="text" onclick="func()">Font and color will be changed</p>
<button type="button" onclick="func()">Click here!</button>
【讨论】:
<p id="text" onclick="func()">
Click on text to change
</p>
<script>
function func()
{
document.getElementById("text").style.color="red";
document.getElementById("text").style.font="calibri";
}
</script>
【讨论】: