JS 给文章所有段落后自动加上链接地址的三种方法(2 位领导批示)

论坛上看到的问题

我用DOM方法做了一个

<!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>
<style>
.test {color:#369;margin-left:18px;}
</style>
</head>
<body>
<p>在看第二个图,如果你全选后准备拷贝这些文字,就会发现在每一段后面都躲了一段字符,而这段字符在“图1”中是隐藏起来的,只有当你选择后才能显现出来。</p>
<p>如上图,这是正常阅读文章的状态,一切显示正常</p>
<p>如上图,这是正常阅读文章的状态,一切显示正常</p>
<script>
function test()
{
var myP = document.getElementsByTagName("p");
for(var i=0;i<myP.length;i++)
{
var createLink = document.createElement("a");
createLink.setAttribute("class","test");
createLink.setAttribute("href","http://www.qqdang.net/blog/");
createLink.setAttribute("target","new");
var createText = document.createTextNode("http://www.qqdang.net/blog/");
createLink.appendChild(createText);
myP[i].appendChild(createLink);
}
}
window.onload = function() {test();}
</script>
</body>
</html>

另外两位板油的答案

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
    <script type="text/javascript">
window.onload=function(){
var brs=document.getElementsByTagName("br");
for(var i=0;i<brs.length;i++){
var txt=document.createTextNode("http://www.hansir.cn");
document.body.insertBefore(txt,brs[i]);
}
}
</script>
 </HEAD>
 <BODY>
 中华人民共和国中华人<br />民共和国中华人民共和国中华人民共和国中华人民共和<br />国中华人民共和国中华人民共和国中华人民共和国<br />中华人民共和国中华人民共和国中华人民共和国中<br />华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国<br />
 </BODY>
</HTML>

用正则的方法,相当简练

<script>
window.onload=function(){
document.body.innerHTML=document.body.innerHTML.replace(/<\/(p|P)>/igm,'<font color="#ffffff">http://www.web0.cn/</font></p>');
}
</script>
<body>
<p>看看~~~</p>
<p>选上看看~~~~~</p>
</body>

getElementsByClassName 获取文档中特定class元素(1 位领导批示)

JS中默认只能用ID与NAME来获取元素,但有时想能直接获取到CLASS就方便多了

GOOGLE了下后,写了一个

document.getElementsByClassName = function(eleClassName)
{
var getEleClass = [];//定义一个数组
var myclass = new RegExp("\\b"+eleClassName+"\\b");//创建一个正则表达式对像
var elem = this.getElementsByTagName("*");//获取文档里所有的元素
for(var h=0;h<elem.length;h++)
{
var classes = elem[h].className;//获取class对像
if (myclass.test(classes)) getEleClass.push(elem[h]);//正则比较,取到想要的CLASS对像
}
return getEleClass;//返回数组
}

练习 JS做的北京奥运会倒计时,精确到秒(0 位领导批示)

Demo http://www.zdyi.com/code/bj2008/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!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>北京2008奥运会开幕倒计时</title>
<style>
* {margin:0;padding:0;font-size:12px;font-family:Calibri, Arial, Helvetica, sans-serif;}
body,html {height:100%;}
#beijing2008 {text-align:center;height:100%;line-height:50;color:#333;margin:auto;}
</style>
</head>
<body>
<div id="beijing2008"></div>
<script>
var now = new Date();
function beijing2008()
{
	var iStart = new Date("8/08/2008 20:00:00");//设置奥运会开幕时间
	now.setTime(now.getTime() + 250);//修正误差
 
	days	= (iStart - now) / 1000 / 60 / 60 / 24;
	dayNum 	= Math.floor(days);//获取天数
	hours 	= (iStart - now) / 1000 / 60 / 60 - (24 * dayNum);
	houNum 	= Math.floor(hours);//获取小时
	if(houNum < 10){houNum = "0" + houNum}
	minutes = (iStart - now) / 1000 / 60 - (24 * 60 * dayNum) - (60 * houNum);
	minNum	= Math.floor(minutes);//获取分钟
	if(minNum < 10){minNum = "0" + minNum};
	seconds	= (iStart - now) / 1000 - (24 * 60 * 60 * dayNum) - (60 * 60 * houNum) - (60 * minNum);
	secNum	= Math.floor(seconds);//获取秒钟
	if(secNum < 10){secNum = "0" + secNum};
 
	var show = document.getElementById("beijing2008");
	show.innerHTML = "距2008北京奥运会开幕还有&nbsp;" + dayNum + "&nbsp;天&nbsp;" + houNum + "&nbsp;时&nbsp;" + minNum + "&nbsp;分&nbsp;" + secNum + "&nbsp;秒" 
}
setInterval("beijing2008()",250);
</script>
</body>
</html>

JS 输入数值 转化为货币格式(0 位领导批示)

一看到这个问题我就想到要用正则,懒得写,狗狗下,便有了如下代码

  1. <script>
  2. function cc(s){
  3.         if(/[^0-9\.]/.test(s)) return "invalid value";
  4.         s=s.replace(/^(\d*)$/,"$1.");
  5.         s=(s+"00").replace(/(\d*\.\d\d)\d*/,"$1");
  6.         s=s.replace(".",",");
  7.         var re=/(\d)(\d{3},)/;
  8.         while(re.test(s))
  9.                 s=s.replace(re,"$1,$2");
  10.         s=s.replace(/,(\d\d)$/,".$1");
  11.         return "¥" + s.replace(/^\./,"0.")
  12.         }
  13. </script>
  14. <input onchange="this.value=cc(this.value)">

YAHOO的侧边栏效果之js版(0 位领导批示)

今天看到有人把我前阵做的js小练习放到了博客上,还不标明原作者,看来我得行动了。今天补救

Demo http://www.zdyi.com/lab/yahoo

Download http://www.zdyi.com/lab/yahooo.rar

转载请注明出处.

JS练习之改善用户体验,弹出登录窗口(4 位领导批示)

Demo www.qqdang.net/code/myAlert/

Code

  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=gb2312" />
  5. <title>弹出提示</title>
  6. <style>
  7. * {margin:0;padding:0;font-size:12px;}
  8. html,body {height:100%;width:100%;}
  9. #content {background:#f8f8f8;padding:30px;height:100%;}
  10. #content a {font-size:30px;color:#369;font-weight:700;}
  11. #alert {border:1px solid #369;width:300px;height:150px;background:#e2ecf5;z-index:1000;position:absolute;display:none;}
  12. #alert h4 {height:20px;background:#369;color:#fff;padding:5px 0 0 5px;}
  13. #alert h4 span {float:left;}
  14. #alert h4 span#close {margin-left:210px;font-weight:500;cursor:pointer;}
  15. #alert p {padding:12px 0 0 30px;}
  16. #alert p input {width:120px;margin-left:20px;}
  17. #alert p input.myinp {border:1px solid #ccc;height:16px;}
  18. #alert p input.sub {width:60px;margin-left:30px;}
  19. </style>
  20.  
  21. </head>
  22.  
  23. <body>
  24. <div id="content">
  25. <a href="#">注册</a>
  26. </div>
  27. <div id="alert">
  28. <h4><span>现在注册</span><span id="close">关闭</span></h4>
  29. <p><label>用户名</label><input type="text" class="myinp" onmouseover="this.style.border='1px solid #f60'" onfoucs="this.style.border='1px solid #f60'" onblur="this.style.border='1px solid #ccc'" /></p>
  30. <p><label>密 码</label><input type="password" class="myinp" onmouseover="this.style.border='1px solid #f60'" onfoucs="this.style.border='1px solid #f60'" onblur="this.style.border='1px solid #ccc'" /></p>
  31. <p><input type="submit" value="注册" class="sub" /><input type="reset" value="重置" class="sub" /></p>
  32. </div>
  33. <script type="text/javascript">
  34. var myAlert = document.getElementById("alert");
  35. var reg = document.getElementById("content").getElementsByTagName("a")[0];
  36. var mClose = document.getElementById("close");
  37. reg.onclick = function()
  38. {
  39. myAlert.style.display = "block";
  40. myAlert.style.position = "absolute";
  41. myAlert.style.top = "50%";
  42. myAlert.style.left = "50%";
  43. myAlert.style.marginTop = "-75px";
  44. myAlert.style.marginLeft = "-150px";
  45.  
  46. mybg = document.createElement("div");
  47. mybg.setAttribute("id","mybg");
  48. mybg.style.background = "#000";
  49. mybg.style.width = "100%";
  50. mybg.style.height = "100%";
  51. mybg.style.position = "absolute";
  52. mybg.style.top = "0";
  53. mybg.style.left = "0";
  54. mybg.style.zIndex = "500";
  55. mybg.style.opacity = "0.3";
  56. mybg.style.filter = "Alpha(opacity=30)";
  57. document.body.appendChild(mybg);
  58. document.body.style.overflow = "hidden";
  59. }
  60.  
  61. mClose.onclick = function()
  62. {
  63. myAlert.style.display = "none";
  64. mybg.style.display = "none";
  65. }
  66. </script>
  67. </body>
  68. </html>

Input高级用法(0 位领导批示)

1.取消按钮按下时的虚线框
在input里添加属性值 hideFocus 或者 HideFocus=true

2.只读文本框内容
在input里添加属性值 readonly

3.防止退后清空的TEXT文档(可把style内容做做为类引用)

  1. <input style=behavior:url(#default#savehistory); type=text id=oPersistInput>

4.ENTER键可以让光标移到下一个输入框

  1. <input onkeydown="if(event.keyCode==13)event.keyCode=9" >

5.只能为中文(有闪动)

  1. <input onkeyup="value=value.replace(/[ -~]/g,’’)" onkeydown="if(event.keyCode==13)event.keyCode=9">

6.只能为数字(有闪动)

  1. <input onkeyup="value=value.replace(/[^\d]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,’’))">

7.只能为数字(无闪动)

  1. <input style="ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9" onKeyPress="if ((event.keyCode<48 || event.keyCode>57)) event.returnValue=false">

8.只能输入英文和数字(有闪动)

  1. <input onkeyup="value=value.replace(/[\W]/g,’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,’’))">

9.屏蔽输入法

  1. <input type="text" name="url" style="ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9">

10. 只能输入 数字,小数点,减号(-) 字符(无闪动)

  1. <input onKeyPress="if (event.keyCode!=46 && event.keyCode!=45 && (event.keyCode<48 || event.keyCode>57)) event.returnValue=false">

11. 只能输入两位小数,三位小数(有闪动)

  1. <input maxlength=9 onkeyup="if(value.match(/^\d{3}$/))value=value.replace(value,parseInt(value/10)) ;value=value.replace(/\.\d*\./g,’.’)" onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 && event.keyCode!=45 || value.match(/^\d{3}$/) || /\.\d{3}$/.test(value)) {event.returnValue=false}" id=text_kfxe name=text_kfxe>

window.event对像在IE与FF中的区别(0 位领导批示)

window.event
IE:有window.event对象
FF:没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=doMouseMove(event)
鼠标当前坐标
IE:event.x和event.y。
FF:event.pageX和event.pageY。
通用:两者都有event.clientX和event.clientY属性。

鼠标当前坐标(加上滚动条滚过的距离)
IE:event.offsetX和event.offsetY。
FF:event.layerX和event.layerY。
标签的x和y的坐标位置:style.posLeft 和 style.posTop
IE:有。
FF:没有。
通用:object.offsetLeft 和 object.offsetTop。

窗体的高度和宽度
IE:document.body.offsetWidth和document.body.offsetHeight。注意:此时页面一定要有body标签。
FF:window.innerWidth和window.innerHegiht,以及document.documentElement.clientWidth和document.documentElement.clientHeight。
通用:document.body.clientWidth和document.body.clientHeight。

添加事件
IE:element.attachEvent(”onclick”, func);。
FF:element.addEventListener(”click”, func, true)。
通用:element.onclick=func。虽然都可以使用onclick事件,但是onclick和上面两种方法的效果是不一样的,onclick只有执行一个过程,而attachEvent和addEventListener执行的是一个过程列表,也就是多个过程。例如:element.attachEvent(”onclick”, func1);element.attachEvent(”onclick”, func2)这样func1和func2都会被执行。

标签的自定义属性
IE:如果给标签div1定义了一个属性value,可以div1.value和div1[”value”]取得该值。
FF:不能用div1.value和div1[”value”]取。
通用:div1.getAttribute(”value”)。

父节点、子节点和删除节点
IE:parentElement、parement.children,element.romoveNode(true)。
FF:parentNode、parentNode.childNodes,node.parentNode.removeChild(node)。

Tags : , ,

JS图片展示效果(0 位领导批示)

  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=gb2312" />
  5. <meta name="Author" content="wuleying" />
  6. <title>图片展示</title>
  7. <style>
  8. * {margin:0;padding:0;font-size:12px;}
  9. body {background:#000;}
  10. ul {list-style:none;}
  11. #box {margin:20px auto;width:600px;border:1px solid #ccc;height:70px;overflow:hidden;}
  12. #box_l,
  13. #box_r {float:left;padding:28px 6px 0 6px;background:#ccc;height:42px;cursor:pointer;color:#06c;}
  14. #box_r.down,
  15. #box_l.down {background:#999;color:#fff;}
  16. #box_r {float:right;}
  17. #box_c {float:left;width:564px;overflow:hidden;padding-top:4px;}
  18. #box_c img {width:100px;height:60px;border:1px solid #ccc;}
  19. #box_c li {float:left;display:inline;margin:0 2px 0 2px;}
  20. #box_c ul {width:1000px;margin-left:2px;}
  21. .alert {z-index:1000;filter:alpha(opacity=80);opacity:0.8;position:absolute;left:434px; top:409px;border:1px solid #ff0;background:#ffc;width:120px; height:16px;text-align:center;padding-top:4px;color:#111;}
  22. .none {display:none;}
  23. #show {border:1px solid #ccc;padding:3px;width:400px;height:300px;margin:40px auto;}
  24. #show img {width:400px;height:300px;cursor:pointer;}
  25. </style>
  26.  
  27. </head>
  28. <body>
  29. <div id="show">
  30. <img src="" id="showpic" />
  31. </div>
  32. <div id="box">
  33. <div id="box_l">&laquo;</div>
  34. <div id="box_c">
  35. <ul>
  36. <li><a href="#"><img src="http://smallpic.zcool.com.cn/share/nr1.jpg" alt="" /></a></li>
  37. <li><a href="#"><img src="http://smallpic.zcool.com.cn/02.jpg" alt="" /></a></li>
  38. <li><a href="#"><img src="http://smallpic.zcool.com.cn/03.jpg" alt="" /></a></li>
  39. <li><a href="#"><img src="http://smallpic.zcool.com.cn/vector/people1/060_s.jpg" alt="" /></a></li>
  40. <li><a href="#"><img src="http://smallpic.zcool.com.cn/share/sl.jpg" alt="" /></a></li>
  41. <li><a href="#"><img src="http://smallpic.zcool.com.cn/vector/design1/139_s.jpg" alt="" /></a></li>
  42. <li><a href="#"><img src="http://smallpic.zcool.com.cn/share/sl1.jpg" alt="" /></a></li>
  43. <li><a href="#"><img src="http://smallpic.zcool.com.cn/vector/design1/138_s.jpg" alt="" /></a></li>
  44. <li><a href="#"><img src="http://smallpic.zcool.com.cn/png3/052.jpg" alt="" /></a></li>
  45. </ul>
  46. </div>
  47. <div id="box_r">&raquo;</div>
  48. </div>
  49. <div class="none" id="sorry">对不起,到头了!</div>
  50. <script type="text/javascript">
  51. var box = document.getElementById("box_c");
  52. var boxl = document.getElementById("box_l");
  53. var boxr = document.getElementById("box_r");
  54. var ts = document.getElementById("sorry");
  55. i = 0;
  56. function scrollFunLeft()
  57. {
  58. i++;
  59. if(box.scrollLeft<386)
  60. {
  61. box.scrollLeft+=i;
  62. ts.className="";
  63. }
  64. else
  65. {
  66. clearInterval(t);
  67. i=0;
  68. ts.className="alert";
  69. }
  70. }
  71.  
  72. function scrollFunRight()
  73. {
  74. i++;
  75. if(box.scrollLeft>0)
  76. {
  77. box.scrollLeft-=i;
  78. ts.className="";
  79. }
  80. else
  81. {
  82. clearInterval(t);
  83. i=0;
  84. ts.className="alert";
  85. }
  86. }
  87.  
  88. boxl.onmouseover = function(){t=setInterval(scrollFunRight,70);boxl.className="down"}
  89. boxl.onmouseout = function() {clearInterval(t);i=0;boxl.className="";ts.className="";}
  90. boxr.onmouseover = function(){t=setInterval(scrollFunLeft,70);boxr.className="down";}
  91. boxr.onmouseout = function() {clearInterval(t);i=0;boxr.className="";ts.className="";}
  92.  
  93. /*显示大图*/
  94. var pic = document.getElementById("showpic");
  95. var imgs = document.getElementById("box_c").getElementsByTagName("img");
  96. for(i=0;i<imgs.length;i++)
  97. {
  98. window.onload = function() {pic.src= imgs[0].src;}
  99. imgs[i].onmouseover = function() {pic.src = this.getAttribute('src');}
  100. imgs[i].onclick = function() {window.open(this.getAttribute('src'));}
  101. pic.onclick = function() {window.open(this.getAttribute('src'));}
  102. }
  103. </script>
  104. </body>
  105. </html>

demo http://www.ywowy.com/code/imgshow/

随机显示的10篇日志

评论最多的10篇日志

浏览最多的10篇日志