Safari - Error: Syntax error, unrecognized expression: input[data-card-type="payment-one

Safari - Error: Syntax error, unrecognized expression: input[data-card-type="payment-one

在 mac Safari(以及 FF v.38 及更早版本的旧版本)上,我们收到以下错误:

错误:语法错误,无法识别的表达式:input[data-card-type="payment-one"

jQuery版本:https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js

$(this).change(function() {
  if($(this).val() != '' ) {
    $('input[data-card-type="'+paymentGroup+'"').val('').prop('disabled',true);

在 Safari 的控制台中,红色内容为: 错误:语法错误,无法识别的表达式:input[data-card-type="payment-one 在错误下方显示: (匿名函数)

这些看起来是否与 jQuery 2.1.4 冲突,或者可能还有其他不正确的地方?

这看起来像是 Safari 的问题,但实际上它根本不应该起作用。您需要关闭 [data-card-type=paymentGroup 语句,没有那个结尾 ] Safari 会出错。我从经验得到的这个结论。 Chrome(我的主要开发浏览器)将让它飞起来而不会发出任何窥视,但 Safari 会中断(这是理所当然的,它是无效的)。

将您的代码替换为:

$(this).change(function() {
   if($(this).val() != '' ) {
     $('input[data-card-type="'+paymentGroup+'"]').val('').prop('disabled',true);