Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript event.target.value在firefox中返回的值与在Chorme/IE中返回的值不同_Javascript_Jquery_Firefox - Fatal编程技术网

Javascript event.target.value在firefox中返回的值与在Chorme/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

我正在使用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.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);
    }
}