Я надеюсь, что кто-нибудь может мне помочь, значение массива пусто в посте.
$(function start() {
c_all = new Array('#div { font-color:#ff0000; border:1px solid #00ff00; }', '#div_2 { font-color:#ff0000; }', '.line2 { font-color:#00ffff; }');
css(c_all);
});
function css(x) {
values = new Array();
for (i = 0; i < x.length; i++) {
c0_selector = '' + x[i].match(/^.*{/) + '';
c0_selector = c0_selector.replace(/\s*/g, '');
c0_selector = c0_selector.replace(/{/, '');
x[i] = x[i].replace(/^.*{/, '');
x[i] = x[i].replace(/}/, '');
c0_arr = x[i].split(';');
values['' + c0_selector + ''] = new Array();
$('#log').append(''+c0_selector+'
');
for (i2 = 0; i2 < c0_arr.length; i2++)
{
values[''+c0_selector+''][i2] = c0_arr[i2].split(':');
$('#log').append(''+c0_arr[i2]+'
');
}
}
$.ajax({
type: 'post',
data: JSON.stringify(values),
contentType: 'application/json',
dataType: 'json'
});
}
Рабочий пример -> http://www.jsfiddle.net/V9Euk/448/
Заранее спасибо! Peter
Попробуйте сделать values
объектом (как это должно быть в javascript для именованных ключей).
var values = {};
Кроме того, очень хорошая идея объявлять переменные с помощью ключевого слова var
, чтобы не создавать глобальные переменные.
Кроме того, нет необходимости в '' + c0_selector + ''
, поскольку у вас уже есть строка. Просто выполните c0_selector
.
Готовый продукт регистрирует заполненный объект. http://www.jsfiddle.net/V9Euk/450/
Это прямо из спецификации ECMAScript.
Абстрактная операция JA(значение) сериализует массив. Он имеет доступ к стек, отступ, пробел и пространство вызов stringify метод. Представление массивов включает только элементы между ноль и array.length – 1 включительно. Именованные свойства исключаются из стрингификация. Массив в виде открытой левой скобки, элементы, разделенные запятой, и закрывающая правая скобка.
Практически любые именованные свойства исключаются из результата.