【问题标题】:How to slice a id and grab a number?如何切片一个id并获取一个数字?
【发布时间】:2011-12-07 22:38:33
【问题描述】:

我有一个类似的 jQuery id

<div id="myid-page-top-0">
    some stuff
</div>

我想使用 jQuery 从#id 的末尾抓取"0"。我试过了

$('div').slice(-1,0);

但这不起作用?有什么想法吗?

【问题讨论】:

    标签: jquery class trim slice


    【解决方案1】:

    给你,伙计。测试和工作。遍历所有 div 并返回结束编号

    <script type="text/javascript">
     $(document).ready(function() {
    
                                $('div').each(function(i) {
                                                       var id = $(this).attr("id");
    
                                    var slices = id.substr(id.length - 1, 1); 
                                    alert(slices);
                                    });
                                }
                                );
      </script>
    
    
    <div id="myid-page-top-0">
        some stuff
    </div>
    
    <div id="myid-page-top-1">
        some stuff
    </div>
    
    <div id="myid-page-top-2">
        some stuff
    </div>
    

    【讨论】:

      【解决方案2】:

      只有当你的 id 包含数字 0-9 时才有效,而不是切片,如果它是 10 或 11,你应该基于破折号。

      类似:

      var id = "myid-page-top-0";
      alert(id.split("-")[3]);
      

      或在您的代码中类似:

      var number = $('div').attr('id').split("-")[3];
      

      【讨论】:

      • 感谢您的回复 :) 您知道哪个性能更好吗?即$('div').attr('id').replace('myid-page-top-', ''); 或您的$('div').attr('id').split("-")[3];
      • 差别如此之小以至于无关紧要。在这一点上,它真的只是归结为偏好。
      • 性能方面,我会说 id.substr(id.lastIndexOf('-')+1) 比任何一个都好。
      【解决方案3】:

      $('div')是一个对象,你想要ID:

      $('div').attr('id').slice(-1,0);
      

      如果你的数字变成两位数,虽然你可能会遇到问题,但最好这样做:

      $('div').attr('id').replace('myid-page-top-', '');
      

      【讨论】:

      • 啊酷 :) 第二个有效,但 .slice 没有 - 即见 jsfiddle.net/BM5Vz - 我会试一试第二个 :)
      猜你喜欢
      • 2018-04-22
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 2017-04-02
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多