日期:2014-05-16  浏览次数:20425 次

JS 动态修改onclick事件
目的:新建一个多选框,选中多选框后, 将多选框后的文字加上"line-though"效果

JScript code

newCheckBox.onclick = function()
         {
             var pig =this.checked;
             alert(pig);  
             pig?this.nextSibling.style.textDecoration="line-through":this.nextSibling.style.textDecoration="none";
 
         }



上面代码alert(pig)输出了, 但是却没有实现我要的效果, 请问是啥原因啊??

------解决方案--------------------
探讨

不好意思, 刚操作错误了;
我是动态创建复选框, 然后再添加的效果,但是实现不了; 我的代码:
JScript code

<html>

<head>
<title>JS实现选中复选框后删除后面文字的效果</title>
</head>

<script type="text/javascript">
var i =0;

function AddCheckBox(……

------解决方案--------------------
this.nextSibling 表示是新创建复选框后面的兄弟节点
parent.appendChild(document.createTextNode("123"+i));
这句话表示在复选框后面增加一个文本节点,也就是不带标签的纯文本,用this.nextSibling方法是得不到这个文本节点的 所以看不到效果。
可以在复选框后面创建一个SPAN节点,这样就可以看到效果