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