【问题标题】:jquery id identifier [duplicate]jquery id标识符[重复]
【发布时间】:2012-07-20 13:29:42
【问题描述】:

可能重复:
Wildcards in jQuery selectors

假设我的页面上有几个按钮,id 标签为id_1id_2id_3

我想要一个函数来覆盖所有被按下的字符,因此可以检查前 3 个字符是否为 id_

 $("?????").click(function(event) {

什么取代了??????

在这种情况下,我不能改用类。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    这也可以:

    $('[id^=id_]').click(function() {
      //Do stuff here
    });
    

    这会选择所有id 属性以id_ 开头的元素,因此id_1id_2id_3 等都会被选中。

    但是,使用class 属性作为选择器可能更合适。与id 属性不同,class 属性不必是唯一的。因此,例如,您的页面上可以有 5 个按钮,每个按钮的类名称为 clickMe,并使用以下代码来监听任何按钮的点击:

    $('.clickMe').click(function() {
      //Do stuff here
    });
    

    希望对您有所帮助。

    【讨论】:

    • 只是一个小问题。 [id 部分的意思是“带有属性id”,其余的意思是“以id_ 开头”,对吧?
    • @Linuxios 是的,[id 部分是属性的名称,id_ 是属性值的开头。
    • 谢谢!现在我知道了一个很酷的 jQuery 技巧。
    • @Linuxios 如果您觉得我的回答对您有帮助,请在旁边打勾吗?
    • 这里有点误会。我不是欧普。 ;)!
    【解决方案2】:

    这个怎么样(我对 JavaScript 很陌生,可能不会工作):

    for(var i = 0; i < maxId; i++) {
      $("#id_"+i).click(function(e) {
        //Blah blah blah
      });
    }
    

    【讨论】:

    • @spryno724:谢谢!有时我会把事情从我的帽子里拿出来工作。其他时候,不是。很高兴这是一个有效的时间:)。
    • 你错过了click(function(e) { });的右括号
    • @AndyLobel:谢谢,我会编辑的。固定。
    • 不需要for循环,可以使用^=(见duplicate question
    • @Linuxios 抱歉,我的快速扫描没有注意到这一点。大声笑
    【解决方案3】:

    试试这个

    $(function(){
        $('button[id^="id_"]').on('click', function(e){
            alert($(this).attr('id'));
        });
    });​
    

    Here's 一个例子。

    【讨论】:

      猜你喜欢
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 2019-12-11
      • 2016-07-24
      • 1970-01-01
      相关资源
      最近更新 更多