在运行时生成元素时的JQuery处理事件

时间:2014-07-02 11:56:37

标签: javascript php jquery html loops

免责声明:我是JQuery的新手

我不知道如何标题这个问题,但首先我的代码在下面

$(document).on("click" ,'[id^="picChangeAddress"]', function() {
    $('div[id^="divAddressSet"]').toggle();
});

请注意,我的div和Checkboex数量相同,每个名称格式也相同,例如复选框picChangeAddress1, picChangeAddress2等等,以及div divAddressSet1, divAddressSet2和等等。

我已使用上述代码,因为这些ID是在运行时生成的。当我点击一个复选框时,我首先需要问一些事情,它会影响页面上的每个div div[id^="divAddressSet"],当我点击[id^="picChangeAddress"]任意一个复选框时,它们都会切换。我希望你能帮助我如何一次只显示或隐藏一个div。

任何想法?

3 个答案:

答案 0 :(得分:2)

您可以从ID中提取数字,然后您可以使用ID选择器隐藏div

$(document).on("click" ,'[id^="picChangeAddress"]', function() {
    var num = parseInt(this.id.match(/\d+/)[0],10); //Extract number
    $('#divAddressSet'+num).toggle();
});

答案 1 :(得分:1)

您需要从ID中提取数字并使用它,以便您定位正确的选择器:

$(document).on("click" ,'[id^="picChangeAddress"]', function() {
    $('div[id="divAddressSet'+this.id.substring(16)+'"]').toggle();
});

答案 2 :(得分:1)

试试这个:

$(document).on("click" ,'[id^="picChangeAddress"]', function() {
  var o = this.id.split('').pop();
  $("#divAddressSet"+o).toggle();
});