动态添加多个按钮在Jquery中需要传递特定的参数OnClick

时间:2016-04-14 20:40:36

标签: jquery

请记住,我正在使用涉及更新面板的Webforms ASP.NET。我对jquery很新,所以这就是我所拥有的。我有一个复选框,在页面加载时加载动态数量的列表项。我已经想出如何使用下面的代码动态地在每个按钮旁边添加一个按钮。

$("INPUT[id^='DefaultContent_checkLstWebObjects_").each(function () {

                        $(this).after('<input type="button" id="BlueButton" value=">" class="peek" onclick="Selectall()"/>');
                    });

所以现在说我有3个按钮,每个按钮会调用相同的功能,但每次需要传递一个唯一的参数。我的设置是否可以实现这一点?感谢。

2 个答案:

答案 0 :(得分:1)

您可以在函数调用中传递复选框的ID - 这将是唯一的。你给所有的按钮都是相同的ID,因为你将使用&gt; 1你应该使用像类名这样的东西,例如。

$("INPUT[id^='DefaultContent_checkLstWebObjects_").each(function () {
  $(this).after('<input type="button" id="BlueButton" value=">" data-id="'+$(this).attr("id")+'" class="peek"/>');
});
$(".peek").on("click",function(){ 
  Selectall($(this).data(id));
});

答案 1 :(得分:0)

您可以在函数调用中传递this作为参数,您正在发送DOM节点复选框对象,因此您可以更自由地处理数据,属性,CSS(您想要的)。这样您就可以处理您想要的任何参数。想想:

&#13;
&#13;
$("INPUT[id^='DefaultContent_checkLstWebObjects_").each(function () {
  
  // Passing this through the function call
  $(this).after('<input type="button" id="BlueButton" value=">" class="peek" onclick="Selectall(this)"/>'); 
});

// Your function
function Selectall(checkbox_obj){
  
  // Handling attributes data, ID in this example
  var checkbox_id = $(checkbox_obj).attr('id');
  
  // -----------------------------------
  // Your business rules here... 
  // -----------------------------------
}
&#13;
&#13;
&#13;