Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Получить цифровые значения из id. (https://javascript.ru/forum/events/36916-poluchit-cifrovye-znacheniya-iz-id.html)

realstranger 01.04.2013 01:24

Получить цифровые значения из id.
 
Добрый день, задача следующая, нужно распарсить страницу и собрать все числовые значения из id на странице. На странице 10-15 блоков с id="div-10", id="div-11". Вот нужно забрать 10 и 11 и посетить в массив:

{"cid":10}, {"cid":11}


и.т.п

Застопорился в самом начале:

n = $(this).attr("id").match(/div-(\d+)/);
$.each(n, function(index, value) {
  $('#my').append(index + ': ' + value);
});


Получаю ошибку: Uncaught TypeError: Cannot call method 'match' of undefined

Помогите пожалуйста?

update:
jQuery.expr[':'].regex = function(elem, index, match) {
    var matchParams = match[3].split(','),
        validLabels = /^(data|css):/,
        attr = {
            method: matchParams[0].match(validLabels) ? 
                        matchParams[0].split(':')[0] : 'attr',
            property: matchParams.shift().replace(validLabels,'')
        },
        regexFlags = 'ig',
        regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
    return regex.test(jQuery(elem)[attr.method](attr.property));
};
n = jQuery('div:regex(id,div-\\d+)');
jQuery.each(n, function(index, value) {
  jQuery('#my').append(index + ': ' + value);
});


Вот такая штука помогает найти все дивы, как теперь оставить только числовую часть?

ksa 01.04.2013 09:29

Цитата:

Сообщение от realstranger
На странице 10-15 блоков с id="div-10", id="div-11". Вот нужно забрать 10 и 11 и посетить в массив

Как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function (){
	var a=[];
	$('[id^="div-"]').each(function (){
		var i=a.length;
		a[i]=new Object();
		a[i]['cid']=this.id.split('-')[1];
	});
	alert(a.length);
});
</script>
</head>
<body>
<div id='div-10'>div-10</div>
<div id='div-11'>div-11</div>
</body>
</html>

realstranger 01.04.2013 11:14

Оооо! То, что надо! Спасибо огромное!


Часовой пояс GMT +3, время: 04:50.