Как вырезать идентификатор и получить число?

#jquery #class #trim #slice

#jquery #класс #обрезать #нарезать

Вопрос:

У меня есть идентификатор jQuery, например

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

Я хочу использовать jQuery, чтобы захватить "0" с конца #id . Я пробовал, как

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

Но это не работает? Есть идеи?

Ответ №1:

Вместо среза, который будет работать только в том случае, если ваш идентификатор содержит цифры 0-9, а не, скажем, 10 или 11, вы должны основывать его на тире.

Что-то вроде:

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

или в вашем коде что-то вроде:

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

Комментарии:

1. спасибо за ответ 🙂 что лучше с точки зрения производительности, вы знаете? т.е. $('div').attr('id').replace('myid-page-top-', ''); Или ваш $('div').attr('id').split("-")[3]; ?

2. разница настолько мала, что она была бы несущественной. На самом деле все сводится к предпочтениям в этот момент.

3. С точки зрения производительности я бы сказал, что id.substr(id.lastIndexOf(‘-‘) 1) лучше, чем любой из них.

Ответ №2:

$('div') это объект, вам нужен идентификатор:

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

Если ваши числа состоят из двузначных цифр, хотя у вас могут возникнуть проблемы, возможно, было бы лучше сделать это следующим образом:

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

Комментарии:

1. ах, круто 🙂 2-й работает, но .slice не работает — т. е. См. jsfiddle.net/BM5Vz — я закружу вторую голову 🙂

Ответ №3:

Вот так, приятель. Протестировано и работает. перебирает все разделы и возвращает конечное число

 <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>