Javascript jQuery-split()数组只有一个匹配项=未定义
我对Javascript jQuery-split()数组只有一个匹配项=未定义,javascript,jquery,arrays,Javascript,Jquery,Arrays,我对split()函数有问题。 我未定义错误,但不知道原因:/ 用一个工作示例更容易解释: $(函数开始() { css(“#div{font color:#ff0000;border:1px solid#00ff00;}”,“#div#u 2{font color:#ff0000;}”,“#line2{font color:#00ffff;}”); }); 功能css(c0、c1、c2) { 如果(c0!=“未定义”) { c0_选择器=c0.match(/^.*{/); c0=c0.替换(/
split()
函数有问题。
我未定义错误,但不知道原因:/
用一个工作示例更容易解释:
$(函数开始()
{
css(“#div{font color:#ff0000;border:1px solid#00ff00;}”,“#div#u 2{font color:#ff0000;}”,“#line2{font color:#00ffff;}”);
});
功能css(c0、c1、c2)
{
如果(c0!=“未定义”)
{
c0_选择器=c0.match(/^.*{/);
c0=c0.替换(/^.*{/,'');
c0=c0。替换(/}/,“”);
c0_arr=c0.拆分(“;”);
值=新数组();
值[0]=新数组();
值[0][0]=c0_选择器;
对于(i=1;i ');
$('#log')。追加('+value[0][1][0]+'
');
$('#log')。追加('+values[0][1][1]+'
');
$('#log')。追加('
');
$('#log')。追加('+values[1][0]+'
');
$('#log')。追加('+values[1][1][0]+'
');
$('#log')。追加('+values[1][1][1]+'
');
$.ajax({
url:'test.php',
键入:“POST”,
数据类型:“json”,
数据:$.toJSON(值),
contentType:'application/json;charset=utf-8',
成功:函数(){
警惕(“成功”);
}
});
}
提前谢谢!
Peter您已经有了记录值数组的行,添加记录其他变量的行有那么困难吗
c1_arr = c1.split(';');
这里创建的数组是['font-color:#ff0000',']-有一个空白的第二个元素,因为输入字符串中的“;”后面没有任何内容
然后当你打电话时:
values[1][i]= c1_arr[i].split(':');
c1_arr[1]是空字符串,因此值[1][1]是一个只有一个元素的数组,即空字符串
值[1][1][0]->空字符串
值[1][1][1]->未定义(没有第二个元素)您的for循环错误
c0_arr = c0.split(';');
你会得到索引0和1,其中包含之后的内容
然后你像这样循环:
for (i = 1; i < c0_arr.length; i++)
{
values[0][i]= c0_arr[i].split(':');
}
for (i = 0; i < c0_arr.length; i++)
{
values[0][i+1]= c0_arr[i].split(':');
}
for(i=1;i
从索引1开始。
您应该从索引0开始,按如下方式填充值数组:
for (i = 1; i < c0_arr.length; i++)
{
values[0][i]= c0_arr[i].split(':');
}
for (i = 0; i < c0_arr.length; i++)
{
values[0][i+1]= c0_arr[i].split(':');
}
for(i=0;i
然后你会得到你所有的价值观
前面的答案清楚地解释了为什么会出现未定义的错误