Javascript jQuery math和split只返回请求的元素
如何使用jQuery实现这个网格,并使用.css()方法添加背景 我尝试过使用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++) { ...
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');