黑马程序员技术交流社区
标题:
关于javascript中练习做一个跟css手册中一样的实例的一个小问题
[打印本页]
作者:
马东华
时间:
2012-6-8 10:39
标题:
关于javascript中练习做一个跟css手册中一样的实例的一个小问题
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="doctool.js"></script>
<script type="text/javascript">
function change()
{
var selNode=byId("selid");
var value1=selNode.options[selNode.selectedIndex].value;
var divNode1=byId("cssid");
var divNode2=byId("textid");
divNode1.style.textTransform = value1;
divNode2.innerText="text tranforms : "+value1+" ;";
}
</script>
<style type="text/css">
#cssid{
width:300px;
height:60px;
background:#F90;
}
#textid{
width:300px;
background:#999;
}
</style>
</head>
<body>
<div id="cssid">
Good good study, day day up!
</div>
<p>
</p>
<select id="selid" onchange="change()">
<option name="item" value="none">----text--tranforms---</option>
<option name="item" value="capitalize">首字母大写</option>
<option name="item" value="uppercase">所有字母大写</option>
<option name="item" value="lowercase">所有字母小写</option>
</select>
<p></p>
<div id="textid">
text tranform : none ;
</div>
</body>
</html>
复制代码
我做出的页面,只有在第一次选择的时候会出来效果,一旦第二次选择,上面的文字格式就不会变了,这是问什么啊,求解答
作者:
杨文园
时间:
2012-6-8 11:12
粘贴你的代码运行,出现了乱码显示 ??
作者:
符云爵
时间:
2012-6-8 12:16
byId()这是神马函数???
document.getElementById()这样写才对吧
作者:
赵兵锋
时间:
2012-6-8 12:46
不知道你的doctool.js是咋写的,就没用
把byId方法改成document.getElementById()后就没有问题了,看看你那个js有没有问题。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function change()
{
var selNode=document.getElementById("selid");
alert("dd");
var value1=selNode.options[selNode.selectedIndex].value;
var divNode1=document.getElementById("cssid");
var divNode2=document.getElementById("textid");
divNode1.style.textTransform = value1;
divNode2.innerText="text tranforms : "+value1+" ;";
}
</script>
<style type="text/css">
#cssid{
width:300px;
height:60px;
background:#F90;
}
#textid{
width:300px;
background:#999;
}
</style>
</head>
复制代码
作者:
唐志兵
时间:
2012-6-8 13:26
很明确的告诉你,你的代码是没有错误的,你使用的浏览器可能是ie8吧 我的也是ie8 以前在做这个实例的时候也是这样的问题, 点击下列列表后 可能字体大小不会自动却换,这是你可以点击一下上面的 div标签框 就可以 切换了 这是ie8浏览器的原因。
作者:
杨天皓
时间:
2012-6-8 13:46
你直接在下拉框切换的时候,就把当前值传到方法里面去。
下面是我写的代码。你可以参考一下。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>
<input type="text" name="textfield"/>
<select name="select" onchange="change(this.value);"> //在这里直接把当前的value值传给方法。这样在js里面就不用取了。
<option value="1">首字母大写</option>
<option value="2">全部大写</option>
<option value="3">全部小写</option>
</select>
</label>
</form>
</body>
</html>
<script language="javascript">
function change(value)
{
var textObj = form1.textfield; //获取文本对象
var textValue = textObj.value; //获取文本当前值。
if(value==1){
textObj.value=""; //先清空。
var buf = textValue.substring(0,1).toUpperCase();
buf += textValue.substring(1);
textObj.value=buf;
}else if(value==2){
textObj.value="";
var buf = textValue.toUpperCase();
textObj.value=buf;
}else if(value==3){
textObj.value="";
var buf = textValue.toLowerCase();
textObj.value=buf;
}
}
</script>
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2