Javascript event.target.value在firefox中返回的值与在Chorme/IE中返回的值不同
我正在使用PHP和jquery ajax创建一个签出系统,作为一个学校项目,我遇到了一个奇怪的问题,即javascript中event.target返回的值。下面是HTML和JS HTML: 问题在于Firefox和Chrome/IE的返回值不同Javascript event.target.value在firefox中返回的值与在Chorme/IE中返回的值不同,javascript,jquery,firefox,Javascript,Jquery,Firefox,我正在使用PHP和jquery ajax创建一个签出系统,作为一个学校项目,我遇到了一个奇怪的问题,即javascript中event.target返回的值。下面是HTML和JS HTML: 问题在于Firefox和Chrome/IE的返回值不同 Firefox: target.value = 102 target.parentElement.value = undefined Chrome: target.value = undefined target.parentElement.valu
Firefox:
target.value = 102
target.parentElement.value = undefined
Chrome:
target.value = undefined
target.parentElement.value = 102
我不知道为什么它们的处理方式不同,有没有办法正确获得102的值
jQuery处理事件值的方式是什么
您可以使用on()
或click()
附加事件处理程序,然后使用this
关键字引用单击的元素,如下所示:
$('.checkout-remove-btn')。单击(函数(){
console.log(this.value);
})
这可能不是浏览器的问题,但更可能是您单击按钮的位置造成的 如果单击
span
,event.target
将是span元素,因为单击事件会使DOM冒泡。如果单击按钮
,但在span
之外,则事件.目标
将是具有值的按钮
有很多方法可以确定单击了哪个元素,这一种取决于元素的类:
function removeProduct(event) {
if(event.target.classList.contains('glyphicon') {
alert(event.target.parentElement.value);
} else {
alert(event.target.value);
}
}
您确定在这两种情况下都单击了
span
?该行为与Chrome中从span
冒泡出来的事件一致,并直接在Firefox中单击按钮
。我在这里看不到任何jQuery,jQuery的优势之一是隐藏浏览器差异。。。你可以试试“jQuery方式”你是对的@Rorymcrossan在Firefox中点击按钮,在chrome/IE中点击span,知道为什么吗?@JohnHascall抱歉,我在ajax中使用jQuery,但删除了它以插入警报调试。jquery处理事件值的方法是什么?很抱歉,没有早点回答——在飞机上一整天——不管怎么说,下面的答案看起来不错。感谢jquery/javascript非常新,这个方法很可靠:)没问题,很乐意帮助。作为参考,您应尽可能避免使用*事件属性上的。他们现在被认为非常过时。
Firefox:
target.value = 102
target.parentElement.value = undefined
Chrome:
target.value = undefined
target.parentElement.value = 102
function removeProduct(event) {
if(event.target.classList.contains('glyphicon') {
alert(event.target.parentElement.value);
} else {
alert(event.target.value);
}
}