Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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中生成动态id_Javascript_Xml - Fatal编程技术网

在javascript中生成动态id

在javascript中生成动态id,javascript,xml,Javascript,Xml,我正在尝试在列出多个产品的页面上将按钮值从“添加到购物车”更改为“加载…”。下面的代码是到目前为止我得到的最远的代码。唯一的问题是它会更改所有按钮值,而不是页面上单击的某个按钮值 <span class="add-to-cart-buttons"> <input type="button" id="AddToCartButton_41099_27479" name="AddToCartButton_41099

我正在尝试在列出多个产品的页面上将按钮值从“添加到购物车”更改为“加载…”。下面的代码是到目前为止我得到的最远的代码。唯一的问题是它会更改所有按钮值,而不是页面上单击的某个按钮值

<span class="add-to-cart-buttons"> <input type="button" id="AddToCartButton_41099_27479" name="AddToCartButton_41099_27479" class="button call-to-action add-to-cart" value="Add to Cart">  </span>

JS:


$('.button')。单击(函数(){
$(“.button”).prop(“值”、“加载…”);
});
按钮ID是动态的,由CMS(aspdnSF)生成。这是XML文件中代码的外观:

<div class="buy-button-beta">
                <xsl:value-of select="aspdnsf:AddtoCartForm(ProductID, VariantID, 1)" disable-output-escaping="yes"/>
                
            
            
            <script type="text/javascript">
                $('.button').click(function(){
                $(".button").prop("value", "Loading...");
                    });
                </script>

$('.button')。单击(函数(){
$(“.button”).prop(“值”、“加载…”);
});

我不太熟悉xsl元素,所以有没有办法获取ProductID和VariantID,我假设它正在页面上的这个特定项目中创建id“AddToCartButton\u 41099\u 27479”?

我想,您想要更改单击的按钮,而只更改该按钮吗?您需要使用
,而不是类选择器。类选择器说“获取此页面上与该类匹配的所有元素”,这就是正在发生的情况

因此,使用您的代码,它如下所示:

$(this).prop("value", "Loading...");
更好的方法是根本不使用jQuery,而是使用普通的老Javascript:

this.value = "Loading..."; 

X/Y问题,您不需要考虑ID。只需使用单击的元素。
$('.button')。单击(function(){$(this.prop(..)})关于
prop()
拐杖用法的很好的说明。我使用了你提到的简单的旧JS,它很有效。非常感谢。如果我要添加微调器动画而不是“加载…”文本,那么最好的方法是什么?例如,我将“加载…”替换为“”,但这不起作用。@abarkez这是因为您只能将纯文本放在按钮的
属性中。你可以做
$(这个)。用(…)
替换你的HTML替换
,我希望它能工作,至少大约可以!
this.value = "Loading...";