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

car*_*ine 20 safari jquery syntax-error

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

错误:语法错误,无法识别的表达式:输入[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);
Run Code Online (Sandbox Code Playgroud)

在Safari的控制台中,红色显示: 错误:语法错误,无法识别的表达式:输入[data-card-type ="payment-one ,错误在读取之下:( 匿名函数)

这有什么看起来与jQuery 2.1.4冲突,或者可能有其他不正确的东西?

eri*_*sti 52

这看起来像是一个Safari问题,但实际上它永远不应该有效.您需要关闭该[data-card-type=paymentGroup声明,而不会结束]Safari将适合.我从经验得到的这个结论.Chrome(我的主要开发浏览器)可以让它在没有一次窥视的情况下飞行,但Safari会中断(这是理所当然的,它无效).

用以下代码替换您的代码:

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

  • 是的,除了Windows和iPhone上的Safari之外的每个浏览器都会让这个错误漏掉! (3认同)