如何在ASP中选择特定的html元素.. NET中继器通过jQuery/javascript

How to select a specific html element in an ASP.NET repeater through jQuery/javascript?

本文关键字:中继器 NET 元素 javascript jQuery html ASP 选择      更新时间:2023-09-26

我有一个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>