在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...";