【问题标题】:JQuery ID selector for auto generated through php loop通过 php 循环自动生成的 JQuery ID 选择器
【发布时间】:2014-07-02 10:24:00
【问题描述】:

我是 JQuery 的新手,因此难以捕捉通过我的 PHP 循环自动生成的元素 ID。

我的问题是如何在 JQuery 中捕获那些自动生成的 id,如何在 JQuery 中使用循环来捕获唯一的 id,顺便说一下,我的 id 格式是 id="divAddressSet1", id="divAddressSet2" 等等。我如何能够在 JQuery 中捕获每个 id 附加的name(divAddressSet)+a unique number

有什么想法吗?

【问题讨论】:

  • 使用通用类然后使用类选择器

标签: javascript php jquery html loops


【解决方案1】:

尝试在这种情况下使用attribute starts with selector

$('[id^="divAddressSet"]')

或者做一件事,在生成这些元素的同时,给它附加一个公共类。并在class selector 的帮助下抓取这些元素,例如,

$('.commonClass')

由于您的元素是在运行时创建的,请使用event-delegation,如下所示,

$(document).on("click" ,'.commonClass',function() {

});

作为特别说明,将最接近.commonClass 的静态父级替换为document。如果你不这样做,那么只有在propagation 到达document [$(document).on(...)] 之后才会触发绑定的单击事件。 Document 是 DOM 的根,所以如果你有一个更大的 dom 结构,它会导致性能滞后..

【讨论】:

  • 感谢@Rajaprabhu Aravindasamy 的努力,顺便说一句,那个帽子的标志是什么?如果我可以询问我的知识
  • @UsmanSharifAmjadKhan 该符号表示以选择器开头的属性,请阅读提供的链接以了解更多信息。并且您应该对动态创建的元素使用事件委托..
【解决方案2】:

使用event delegation

$(document).on("click" ,'[id^="divAddressSet"]',function() {

       alert(this.id);   
});

对于 id 选择器,您使用前缀“#” 对于类选择器使用“.

【讨论】:

  • 谢谢@Sudharsan,它起作用了,但是我如何在页面加载时隐藏所有这些 ID,这将通过复选框(打开关闭)进行处理。
【解决方案3】:

试试这个

选择器示例:

以给定的字符串开头(例如 divAddressSet),

$("[id^='divAddressSet']")

如果要选择 id 包含给定字符串的元素:

$("[id*='divAddressSet']")

脚本

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

$(document).on("click" ,'.yourclass',function() {  });

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 2011-09-28
    • 2014-02-10
    • 2018-01-29
    • 2016-10-14
    • 2017-10-30
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多