iCheck虽然给出了7个回调函数,但是却没有给任何获得id或value的api,因此只能自己想办法。
折腾了许久,最后想出一个不符合JavaScript规范但是能解决问题的办法,就是从FireBug里直接查看iCheck转化后的元素js属性,然后获取相应的值。
比如我有一个input,代码如下:
<div><input type="checkbox" testAttr="abcdefg" id="checkbox-id"><label>abcdefg</label></div>
元素id是checkbox-id,想要获得的value是abcdefg。打开FireBug,可以看见几个比较重要的值:this、attributes、id。很明显this.id就是我们需要的id。
而<label>的值我们依然获取不到,可是在attributes里可以获得该input的所有属性,因此我们可以把<label>的值也加入到<input>的属性里,这样我们就可以通过this.attributes获得,即this.attributes[2].nodeValue。当然,有了上一步获得的id也可以用id直接定位,毕竟这种方法并不推荐。