如何在ASP中选择特定的html元素.. NET中继器通过jQuery/javascript
本文关键字:中继器 NET 元素 javascript jQuery html ASP 选择 | 更新日期: 2023-09-27 18:12:54
我有一个ASP。. NET Repeater控件,其中在每个ItemTemplate中生成/创建以下代码实例:
我试图在jQuery/javascript中创建一个函数,其中在"qualityBox"文本框中的值,每次单击向上箭头时递增。在我的代码中,这只适用于第一个"ItemTemplate"实例-即我的Repeater中的第一行。
谁能好心地指导我能够使这个工作的每一行在中继器?换句话说,在一行中按下的按钮使相应行的'quantityBox'只增加1。
谢谢!
您的代码的问题是您的使用ID。Id应该是唯一的。因此,当jQuery找到第一个时,它就使用它。您需要一些意味着可重复的东西,例如class.
<ItemTemplate>
<div>
<input type="text" id="quantityBox" value="0"/>
<input type="button" class="upButton"/>
</div>
</ItemTemplate>
接下来,你必须能够选择正确的数量框。
$(".upButton").click(function () {
var quantityBox = $("#quantityBox", $(this).parent());
var currentValue = quantityBox.val();
quantityBox.val(parseInt(currentValue) + 1);
});
首先要做的是改变选择器,将click事件添加到。upbutton。这将把事件附加到。upbutton的所有实例上,而不仅仅是第一个。
接下来,当您可以创建一个变量并使用它时,为什么要执行两次DOM查找?
第三,可以保留quantityBox的ID,因为我已经添加了一个上下文参数。这是说获取被点击元素的父元素,在这个例子中是一个td。然后,只在该元素内查找#quantityBox。
试试吧
我会在数量框上创建一个具有某种类型ID的数据属性,然后将该ID附加到具有向上箭头的元素上,这样您就可以在两者之间建立关系。
<ItemTemplate>
<input type="text" id="quantityBox" data-elementID="$$" value="0"/>
<input type="button" data-elementID="$$" id="upButton"/>
</ItemTemplate>