使用:
document.getElementById("checkboxID").checked如:
if(document.getElementById("checkboxID").checked){alert("checkbox is checked")
}
如果你只需要触发那些常见的事件,比如说鼠标点击,并且不考虑跨浏览器兼容的问题的话,只需要这样做:document.getElementById('myLink').click()
当然这么做的兼容性并不好,比如说 FireFox 就不干。另外 onclick() 这样的方法只能用于在 HTML 中的内联写法。
如果事情稍微复杂一些,比如说你要触发一些自定义的事件,那么你必须要理解 DOM 里面的“事件对象模型”,本质上 $.trigger() 就是对这些概念的封装。不过问题是 DOM 的一致性和兼容性一直都不太好,所以关于事件的对象模型长期以来都处于一个比较混乱的状况下,如果不用 jQuery 的话,想找到一个既简单又足够健壮的解决方案并不容易。
很长时间以来,人们都是这样做的:
// 创建一个事件对象,就好像你绑定事件回调函数里获得的那个事件对象一样
var myEvent = document.createEvent('Event')
// 初始化这个事件对象,为它提高需要的“特性”
myEvent.initEvent('myEventName', true, true)
// 按照常见的方式绑定对该事件的监听,这里的 element 可以是任何一个元素,你懂的
element.addEventListener('myEventName', function(evt) {
// 这里,evt 就是你创建的事件对象了,不过它会更丰富一些——这些是浏览器为你做的
})
// 然后这样触发它
element.dispatchEvent(myEvent)
你必须要去阅读 createEvent initEvent dispatchEvent 这些方法的文档来完整认识它们(文档可以去 MDN 找),上面介绍的只是基本用法。$.trigger() 所封装的也就是它们(及其相关的兼容性处理等等)。不过这些方法已经有点“过时”了,特别像 initEvent 这样的方法更是已经被(新的 DOM 标准)废弃了。
以下是更“现代”的做法,不过老样子:兼容性会是问题:
var myEvent = new Event('myEventName')
element.dispatchEvent(myEvent)
绑定回调是一样的我就不重复了。另外“现代”的做法里触发内建事件要用对应的接口,比如说:
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
})
获取代码如下:
<div id="test" style="tranform:translate3D(20px,50px,0)"></div> var style = document.getElementById('test').stylevar transform = style.transform || ''
var transformY = transform.match(/translate3d\(\d+px,\s*(\d+)px,\s*(\d+)px\)/i)[1]
解释:
style是id为test的div的style属性
transform是style规则中的transform属性,此处忽略前缀问题,如果需要取-webkit-transform则可以通过WebkitTransform获取
transform.match(/translate3d\(\d+px,\s*(\d+)px,\s*(\d+)px\)/i)[1]获取translate3d第二个参数的数值,此题中为50