A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王睿 中级黑马   /  2012-2-18 13:18  /  2379 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王睿 于 2012-2-19 09:05 编辑

这是看毕老师课程写的代码,只能实现部分效果,不能连续改变文字效果,我找了半天找不出问题。请大家帮忙。
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. <style type="text/css">
  7. #cssid{
  8.         height:100px;
  9.         width:300px;
  10.         background-color:#09F;
  11.         text-align:center;
  12.         line-height:100px;
  13. }
  14. #textid{
  15.         background-color:#FF0;
  16.         width:300px;
  17. }

  18. </style>
  19. <script type="text/javascript">
  20. function change()
  21. {
  22.         var selNode = document.getElementById("selid");
  23.         var value = selNode.options[selNode.selectedIndex].value;
  24.         //alert(value);
  25.         var divNode1 = document.getElementById("cssid");
  26.         var divNode2 = document.getElementById("textid");
  27.         
  28.         divNode1.style.textTransform = value;
  29.         divNode2.innerText = "text-transform:"+value+";";
  30. }
  31. </script>
  32. </head>

  33. <body>
  34. <div id="cssid">
  35.         Good good study,Day day up!
  36. </div>
  37. <p></p>
  38. <select id="selid" onchange="change()">
  39.         <option value="none">选择文字效果</option>
  40.         <option value="capitalize">首字母大写</option>
  41.         <option value="uppercase">所有字母大写</option>
  42.         <option value="lowercase">所有字母小写</option>
  43. </select>
  44. <p></p>
  45. <div id="textid">
  46.         text-transform:none;
  47. </div>
  48. </body>
  49. </html>
复制代码

7 个回复

倒序浏览
本帖最后由 王睿 于 2012-2-19 09:04 编辑
专门用ie8 测试过,确实存在这问题。IE6、FireFox不会,连TT(腾讯浏览器)以IE为内核的,在win7+ie8 下,也正常。可能是ie8 的 bug吧,但网上找不到资料。
  另加一function,先将 divNode1.style.textTransform ="none"; 再执行change(),也无效,但在中途加一alert(),就生效了。显然不能每次都弹个窗口吧,后来在设css属性前加上:divNode1.innerText +=""; 另加的function不用,居然生效了!

非常感谢8楼黄秋,问题解决了:加上divNode1.innerText +=""; {:soso_e142:}
回复 使用道具 举报
找了N次了,就是找不到问题,大家帮帮忙呗,把代码复制保存成html,看看你们的电脑能实现连续的改变吗?  难道是我浏览器问题!!!!!!!!!!!!!!!!!!
回复 使用道具 举报
王睿 发表于 2012-2-18 14:17
顶起来,求答案!

不懂意思,什么叫连续改变文字效果?麻烦解释解释
回复 使用道具 举报
pengfangjava 发表于 2012-2-18 15:09
不懂意思,什么叫连续改变文字效果?麻烦解释解释

就是选择全部大写有效果,在接着选择全部小写,就没有反应了。但是divNode2是可以获取到值的。

必须选择一次“选择文字效果”后,在选择其他的才有效果。

不知道我说明白没!
回复 使用道具 举报
是浏览器兼容性的问题, 我在Chrome下表现正常
回复 使用道具 举报
王睿 来自手机 中级黑马 2012-2-18 16:45:27
7#
我是ie8,那这个代码应该怎么解决兼容问题呢
回复 使用道具 举报
黄秋 黑马帝 2012-2-18 20:13:59
8#
王睿 发表于 2012-2-18 16:45
我是ie8,那这个代码应该怎么解决兼容问题呢

  专门用ie8 测试过,确实存在这问题。IE6、FireFox不会,连TT(腾讯浏览器)以IE为内核的,在win7+ie8 下,也正常。可能是ie8 的 bug吧,但网上找不到资料。
  另加一function,先将 divNode1.style.textTransform ="none"; 再执行change(),也无效,但在中途加一alert(),就生效了。显然不能每次都弹个窗口吧,后来在设css属性前加上:divNode1.innerText +=""; 另加的function不用,居然生效了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马