JQuery错误:未捕获错误:语法错误,无法识别的表达式
我下面有一个脚本,它假设从输入字段中获取值,然后将它们添加到href链接中。但我在console中不断遇到这个错误: 未捕获错误:语法错误,无法识别的表达式: ?添加到购物车=7690和变体\u id=8498和属性\u pa\u颜色=金色 以下是脚本:JQuery错误:未捕获错误:语法错误,无法识别的表达式,jquery,wordpress,woocommerce,Jquery,Wordpress,Woocommerce,我下面有一个脚本,它假设从输入字段中获取值,然后将它们添加到href链接中。但我在console中不断遇到这个错误: 未捕获错误:语法错误,无法识别的表达式: ?添加到购物车=7690和变体\u id=8498和属性\u pa\u颜色=金色 以下是脚本: jQuery(document).on("click", ".variations_form.cart .variation_buttons_wrapper a", function(){ // Get all the valu
jQuery(document).on("click", ".variations_form.cart .variation_buttons_wrapper a", function(){
// Get all the values needed for the URL
var add_to_cart = jQuery(this).parent().parent().parent().parent().parent().parent().find( 'input[name="add-to-cart"]' ).val();
var variation_id = jQuery(this).parent().parent().parent().parent().parent().parent().find( 'input[name="variation_id"]' ).val();
var pa_color = jQuery(this).attr("id");
setTimeout(function(){
// Craft the URL
var link = jQuery("?add-to-cart=" + add_to_cart + "&variation_id=" + variation_id + "&attribute_pa_color=" + pa_color);
alert(link);
}, 500);
});
有什么想法吗???你用错了jQuery对象。
如果您试图创建链接,请按以下方式进行:
var link = "?add-to-cart=" + add_to_cart +
"&variation_id=" + variation_id +
"&attribute_pa_color=" + pa_color;
这里不需要jQuery对象。您使用jQuery对象的方式不对。
如果您试图创建链接,请按以下方式进行:
var link = "?add-to-cart=" + add_to_cart +
"&variation_id=" + variation_id +
"&attribute_pa_color=" + pa_color;
此处不需要jQuery对象。jQuery(“?添加到购物车=”…)
不是有效的DOM选择器,因此出现错误。你需要把它作为一个字符串。或者更好,使用:
顺便说一句,不要这样做:
var add_to_cart=jQuery(this).parent().parent().parent().parent().parent().parent().parent().find('input[name=“add to cart”]').val()代码>
你可以这样做:
jQuery(this).closest('.variations_form').find('input…')
(用您拥有的任何父类名称替换variations\u form
)jQuery(“?add to cart=“…”)
不是有效的DOM选择器,因此出现错误。你需要把它作为一个字符串。或者更好,使用:
顺便说一句,不要这样做:
var add_to_cart=jQuery(this).parent().parent().parent().parent().parent().parent().parent().find('input[name=“add to cart”]').val()代码>
你可以这样做:
jQuery(this).closest('.variations_form').find('input…')
(将变体\u form
替换为您拥有的任何父类名称)在创建URL时不需要jQuery对象。只需在没有对象的情况下使用它
var link = "?add-to-cart=" + add_to_cart + "&variation_id=" + variation_id + "&attribute_pa_color=" + pa_color;
在创建URL时,不需要jQuery对象。只需在没有对象的情况下使用它
var link = "?add-to-cart=" + add_to_cart + "&variation_id=" + variation_id + "&attribute_pa_color=" + pa_color;
这是因为您将querystring作为jQuery选择器传递。您需要为同一对象创建有效的选择器
要添加到href链接,请首先选择链接并获取URL
var link = $("#link").attr("href");
然后将查询字符串添加到其中
link += "?add-to-cart=" + add_to_cart + "&variation_id=" + variation_id + "&attribute_pa_color=" + pa_color;
建议:
如果您使用的是表单,那么作为querystring获取所有字段的快捷方式是使用jQueryserialize
方法。例如:
var queryString = $("#form").serialize();
确保所有表单字段都具有名称属性
几句智慧的话:
避免多次调用parent()
以到达目标元素。如果DOM更改,嵌套级别增加或减少,代码将中断。这是因为您将querystring作为jQuery选择器传递。您需要为同一对象创建有效的选择器
要添加到href链接,请首先选择链接并获取URL
var link = $("#link").attr("href");
然后将查询字符串添加到其中
link += "?add-to-cart=" + add_to_cart + "&variation_id=" + variation_id + "&attribute_pa_color=" + pa_color;
建议:
如果您使用的是表单,那么作为querystring获取所有字段的快捷方式是使用jQueryserialize
方法。例如:
var queryString = $("#form").serialize();
确保所有表单字段都具有名称属性
几句智慧的话:
避免多次调用parent()
以到达目标元素。如果DOM更改,嵌套级别增加或减少,代码将中断。我会,但显然我必须再等5分钟。我会,但显然我必须再等5分钟。