Javascript jQuery math和split只返回请求的元素

Javascript jQuery math和split只返回请求的元素,javascript,jquery,indexing,split,element,Javascript,Jquery,Indexing,Split,Element,如何使用jQuery实现这个网格,并使用.css()方法添加背景 我尝试过使用eq()或index()或filtering(),但我无法仅从网格返回所需的元素 我只需要返回角元素,对于中间元素,我需要返回每个元素以分别处理 您已经有了第一个角是如何着色的示例。通过更改循环的索引,可以为其他角着色 for (var i = 0; i < c.length - 4; i++) { for (var j = 0; j < c.length - 4; j++) { ...

如何使用jQuery实现这个网格,并使用.css()方法添加背景

我尝试过使用
eq()
index()
filtering()
,但我无法仅从网格返回所需的元素

我只需要返回角元素,对于中间元素,我需要返回每个元素以分别处理


您已经有了第一个角是如何着色的示例。通过更改循环的索引,可以为其他角着色

for (var i = 0; i < c.length - 4; i++) {
  for (var j = 0; j < c.length - 4; j++) {
     ...
  }
}
for(变量i=0;i
尝试并思考如何访问4个中间单元格,并为每个单元格赋予自己的颜色


您可以在这里查看带有四个彩色角的JSFIDLE:。

您必须迭代所有单元格,并使用
if
语句检查应向该单元格添加什么背景。看

/*
下面是一些全局变量
c-表中的行数组
x-循环中使用的临时x坐标(左侧为0,右侧为c.长度-1)
y-循环中使用的临时y坐标(顶部为0,底部为c.长度-1)
c1-从x轴平移到工作台中心的距离
c2-从y轴平移到工作台中心的距离
cols-RGB颜色的数组
*/
变量c=$('.row'),x,y,c1,c2,
cols=[
135, 203, 205,
235, 164, 158,
197, 191, 88,
214, 117, 165
];
//迭代所有单元格
for(y=0;y1&&c2>1)x<3?立根(x,y,166,233,197):立根(x,y,168,156,197);
//否则使用'cols'变量
如果(c1<1&&c2<1)setBg(x,y,cols.shift(),cols.shift(),cols.shift());
}
//此函数用于从RGB值将背景设置为(x,y)处的单元格
函数setBg(x,y,r,g,b){
c[y].儿童[x].style.background='rgb('+r+','+g+','+b+');
}

我会亲自创建一个函数来帮助这里-> 例如


您需要迭代单元格,并检查循环索引是否等于特定单元格的索引,添加css。哇,这真是太棒了awesome@mcmwhfy. 如果你发现我的答案是有用的,考虑接受它。当然,如果你想添加你的代码的适当描述,以帮助其他人理解你的方法,最后一个请求。谢谢大家!@麦克威菲。即使是begginer Javascript程序员也可以轻松理解我的代码,但无论如何,我添加了一个描述。
/*
  Here are some global variables
  c - Array of rows in the table
  x - Temporary x-coordinate used in loop (left is 0, right is c.length - 1)
  y - Temporary y-coordinate used in loop (top is 0, bottom is c.length - 1)
  c1 - Distance from x-axis translated to center of the table
  c2 - Distance from y-axis translated to center of the table
  cols - An array of RGB colors
*/
var c = $('.row'), x, y, c1, c2,
  cols = [
    135, 203, 205,
    235, 164, 158,
    197, 191, 88,
    214, 117, 165
  ];

// Iterate over all cells
for(y = 0; y < c.length; y++) for(x = 0; x < c.length; x++){
  // Calculate x-distance and y-distance from the center
  c1 = Math.abs(x - 2.5);
  c2 = Math.abs(y - 2.5);

  // If we are in the corner, color it in one way
  if(c1 > 1 && c2 > 1) x < 3 ? setBg(x, y, 166, 233, 197) : setBg(x, y, 168, 156, 197);
  // Otherwise use `cols` variable
  else if(c1 < 1 && c2 < 1) setBg(x, y, cols.shift(), cols.shift(), cols.shift());
}

// This function set background to cell at (x, y) from RGB value
function setBg(x, y, r, g, b){
  c[y].children[x].style.background = 'rgb(' + r + ',' + g + ',' + b + ')';
}
function fill(x1,y1,x2,y2,color) {
  $('.row:nth-child(n+'+y1+'):nth-child(-n+'+y2+
    ') span:nth-child(n+'+x1+
    '):nth-child(-n+'+x2+')')
    .css({"background-color":color})
}

fill(0,0,2,2,'#00ffcc');
fill(0,5,2,6,'yellow');