【问题标题】:JavaScript for any numbered li [closed]任何编号的 li 的 JavaScript [关闭]
【发布时间】:2013-03-11 16:39:57
【问题描述】:

我不知道这是否奇怪,但有没有可能有这样的事情:

   <li id="something-1"> </li>
   <li id="something-2"> </li>
   <li id="something-3"> </li>

并使用 javascript

   $("#something-"+ANYNUMBER).click(function() {
    alert("Boom");
}

这可能吗?我该怎么做?

非常感谢!

【问题讨论】:

    标签: javascript jquery css list


    【解决方案1】:

    你可以这样做:

    $('[id=^"something-"]').click(function() {
        alert("Boom");
    });
    

    但这是你需要使用类的情况:

    <li id="something-1" class="something"></li>
    <li id="something-2" class="something"></li>
    <li id="something-3" class="something"></li>
    

    然后像这样选择它们:

    $('.something').click(function() {
        alert("Boom");
    });
    

    实际上它比通过属性选择器[id=^"something-"] 选择元素更有效。而且它更加灵活和不引人注目。

    【讨论】:

    • 这是一个小提琴:jsfiddle.net/howderek/RHXJb
    • 欢迎您!既然你已经回答了,我也想不回答,但小提琴还是会派上用场的。
    • 谢谢!它与开始时完美配合!
    【解决方案2】:

    你可以使用starts-with selector属性来做到这一点

    $("li[id^=something-]")
    

    或为元素分配一个类并使用类选择器

    【讨论】:

    • 谢谢!它与开始时完美配合!
    【解决方案3】:

    对所有 li 应用一个类

       <li id="something-1" class="className"> </li>
       <li id="something-2" class="className"> </li>
       <li id="something-3" class="className"> </li>
    
    $('.className').click(function() {
        alert("Boom");
    }
    

    $('li').click(function() {
        alert("Boom");
    }
    

    【讨论】:

      【解决方案4】:

      如果您只希望每个列表项在单击时都为alert('boom'),请尝试以下操作:

      $('li').click(function () {
          alert("Boom");
      });
      

      【讨论】:

        猜你喜欢
        • 2023-01-16
        • 2020-04-11
        • 2010-09-17
        • 1970-01-01
        • 2010-11-19
        • 2018-04-24
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多