Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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 需要帮助以确定/修改自定义数据属性_Javascript_Jquery_Wordpress - Fatal编程技术网

Javascript 需要帮助以确定/修改自定义数据属性

Javascript 需要帮助以确定/修改自定义数据属性,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我正在Woocommerce的WordPress中开发一个网站/网店,并尝试在“添加到购物车”按钮旁边添加一个数量字段 我发现这篇文章/教程: 如何在WooCommerce中为产品档案添加数量并保留ajax-Christian Varga 它有两个小片段——第一个片段在我的function.php文件中复制/粘贴后可以正常工作。 第二个是一些javascript代码,它将使quantity字段与“AddtoCart”按钮一起工作 代码如下: $('.input-text.qty', 'ul.p

我正在Woocommerce的WordPress中开发一个网站/网店,并尝试在“添加到购物车”按钮旁边添加一个数量字段

我发现这篇文章/教程: 如何在WooCommerce中为产品档案添加数量并保留ajax-Christian Varga

它有两个小片段——第一个片段在我的function.php文件中复制/粘贴后可以正常工作。 第二个是一些javascript代码,它将使quantity字段与“AddtoCart”按钮一起工作

代码如下:

$('.input-text.qty', 'ul.products').on('change', function() {
    $(this).closest('div').next('a').attr('data-quantity', $(this).val());
});
当我插入javascript代码时,什么都没有发生。这是因为我使用了一个自定义的主题Avada,我想它有一个不同的结构

这也写在教程中:

*注意:这适用于WooCommerce的默认HTML结构,但如果使用自定义主题,HTML结构可能会有所不同,因此 您需要修改此脚本以适应

以下是指向我的页面的链接:

我试图针对我的“添加到购物车”按钮,但我无法让它工作,而且在Javascript方面我也不是那么熟练。 有人能帮我吗?如果我能稍微了解一下这段代码是如何工作的,我将非常高兴

我知道第一行是选择我们添加的数量字段和products div,结果是更改按钮的数据数量属性

致意 Samz3n

像这样试试

$('.input-text.qty').on('change', function() {
    $(this).parent().next('a.add_to_cart_button').attr('data-quantity', $(this).val());
});

问题是您的html标记与此模板不同。我检查了标记并编写了一些jQuery代码。我想这会对你有好处的

$('.quantity').find('input[type="number"]').on('change',function(){
    $(this).parent().next('.product-buttons').find('.add_to_cart_button').data('quantity',$(this).val());
});

您可能与jQuery库发生名称冲突,您可以尝试以下方法

var $ = jQuery;
$('.quantity').find('input[type="number"]').on('change', function () {
  var value = $(this).val();
  var button = $(this).parent().next('.product-buttons').find('.add_to_cart_button');
  button.attr('data-quantity', value);
});
或者更好,在用jQuery修复命名冲突之前使用它

jQuery('.quantity').find('input[type="number"]').on('change', function () {
  var value = jQuery(this).val();
  var button = jQuery(this).parent().next('.product-buttons').find('.add_to_cart_button');
  button.attr('data-quantity', value);
});

非常感谢您的评论。不幸的是,您的代码无法工作。点击“添加到购物车”按钮时,数量不会发送。是否因为Avada使用Ajax向购物车添加/发送产品?我知道html标记与普通woocommerce商店不同,并尝试了多种解决方案:我非常感谢你帮助我认为你需要在这里找到一些东西:但我对WordPress及其插件不太熟悉,因为我使用的是我的自定义框架。不幸的是,它不起作用:非常感谢你的评论!