Javascript条件语句调用
如何调用函数Javascript条件语句调用,javascript,Javascript,如何调用函数checkcolor(),该函数执行表的“详细信息”检查?checkcolor()中的if-else语句将在“details”为“M”时将元素的背景色返回为“蓝色”,否则返回粉红色(对于“F”)。当我尝试调用代码中所示的函数时,它将不起作用 JavaScript代码: //table var table = [ "Lyn", "22", "F", 1, 1, "May", "32", "F", 18, 1, "Sam", "27", "F", 1, 2, "Sham",
checkcolor()
,该函数执行表的“详细信息”检查?checkcolor()
中的if-else语句将在“details”为“M”时将元素的背景色返回为“蓝色”,否则返回粉红色(对于“F”)。当我尝试调用代码中所示的函数时,它将不起作用
JavaScript代码:
//table
var table = [
"Lyn", "22", "F", 1, 1,
"May", "32", "F", 18, 1,
"Sam", "27", "F", 1, 2,
"Sham", "23", "F", 2, 2,
"Hrs", "22", "M", 13, 2
];
// function calling starts here..
for ( var i = 0; i < table.length; i += 5 ) {
var element = document.createElement( 'div' );
element.className = 'element';
var number = document.createElement( 'div' );
number.className = 'number';
number.textContent = (i/5) + 1;
element.appendChild( number );
var symbol = document.createElement( 'div' );
symbol.className = 'symbol';
symbol.textContent = table[ i ];
element.appendChild( symbol );
var details = document.createElement( 'div' );
details.className = 'details';
details.innerHTML = table[ i + 1 ] + '<br>' + table[ i + 2 ];
element.appendChild( details );
element.CheckColour(details); /*help me check this */
/*CheckColour function, help me check this too if there is any error*/
function CheckColour()
{
var element, number, symbol, details;
if(details == "M")
element.style.backgroundColor = 'rgba(0,191,255,0)';
else
element.style.backgroundColor = 'rgba(255,105,180,0)';
}
//表
变量表=[
“林”、“22”、“F”、1、1、,
“5月”、“32日”、“F日”、18日、1日、,
“山姆”、“27”、“F”、1、2、,
"Sham,"23,"F,2,2,,
“小时”,“22”,“米”,13,2
];
//函数调用从这里开始。。
对于(变量i=0;i'+表[i+2];
元素。追加子元素(详细信息);
元素。检查颜色(细节);/*帮我检查一下*/
/*CheckColor功能,如果有任何错误,请帮助我检查此功能*/
函数checkcolor()
{
变量元素、编号、符号、详细信息;
如果(详细信息=“M”)
element.style.backgroundColor='rgba(0191255,0)';
其他的
element.style.backgroundColor='rgba(255105180,0)';
}
您的函数不是元素的方法,因此您不应该在元素
上调用它。而是将元素
也传递给函数
另外,details
是一个DOM元素,因此它不能等于“M”
。可能需要将表[i+2]
与“M”
进行比较
你可以这样做:
CheckColour(element, table[i+2]);
function CheckColour(element, details) {
element.style.backgroundColor =
details == "M" ? 'rgba(0,191,255,0)' : 'rgba(255,105,180,0)';
}
这将使用作为if…else
语句的替代,因为if
的两个块都对同一属性执行赋值
确保将函数
定义移出循环。它只需要定义一次。如何将函数提取出来,并为其提供适当的变量以执行操作
function CheckColour(element, details) {
if(details == "M")
element.style.backgroundColor = 'rgba(0,191,255,0)';
else
element.style.backgroundColor = 'rgba(255,105,180,0)';
}
//table
var table = [
"Lyn", "22", "F", 1, 1,
"May", "32", "F", 18, 1,
"Sam", "27", "F", 1, 2,
"Sham", "23", "F", 2, 2,
"Hrs", "22", "M", 13, 2
];
// function calling starts here..
for ( var i = 0; i < table.length; i += 5 ) {
var element = document.createElement( 'div' );
element.className = 'element';
var number = document.createElement( 'div' );
number.className = 'number';
number.textContent = (i/5) + 1;
element.appendChild( number );
var symbol = document.createElement( 'div' );
symbol.className = 'symbol';
symbol.textContent = table[ i ];
element.appendChild( symbol );
var details = document.createElement( 'div' );
details.className = 'details';
details.innerHTML = table[ i + 1 ] + '<br>' + table[ i + 2 ];
element.appendChild( details );
// element.CheckColour(details); /*help me check this */
CheckColour(element, details);
/*CheckColour function, help me check this too if there is any error*/
var object = new THREE.CSS3DObject( element );
object.position.x = Math.random() * 4000 - 2000;
object.position.y = Math.random() * 4000 - 2000;
object.position.z = Math.random() * 4000 - 2000;
scene.add( object );
objects.push( object );
//
var object = new THREE.Object3D();
object.position.x = ( table[ i + 3 ] * 140 ) - 1330;
object.position.y = - ( table[ i + 4 ] * 180 ) + 990;
targets.table.push( object );
}
功能检查颜色(元素、细节){
如果(详细信息=“M”)
element.style.backgroundColor='rgba(0191255,0)';
其他的
element.style.backgroundColor='rgba(255105180,0)';
}
//桌子
变量表=[
“林”、“22”、“F”、1、1、,
“5月”、“32日”、“F日”、18日、1日、,
“山姆”、“27”、“F”、1、2、,
"Sham,"23,"F,2,2,,
“小时”,“22”,“米”,13,2
];
//函数调用从这里开始。。
对于(变量i=0;i'+表[i+2];
元素。追加子元素(详细信息);
//元素。检查颜色(细节);/*帮我检查一下*/
检查颜色(元素、细节);
/*CheckColor功能,如果有任何错误,请帮助我检查此功能*/
var object=new THREE.CSS3DObject(元素);
object.position.x=Math.random()*4000-2000;
object.position.y=Math.random()*4000-2000;
object.position.z=Math.random()*4000-2000;
场景。添加(对象);
对象。推(对象);
//
var object=new THREE.Object3D();
object.position.x=(表[i+3]*140)-1330;
object.position.y=-(表[i+4]*180)+990;
目标.表格.推送(对象);
}
您正在重新定义函数中的所有变量,使其值未定义
,这很明显!='M'
。除此之外,“它不起作用”这不是一个很好的问题描述。没有任何东西被传递到函数中…嗯,它仍然不会根据细节改变颜色。也许它与css有关。顺便说一句,谢谢你宝贵的建议。我不知道你想做什么,但在你的代码中,细节
是一个DOM元素。这显然永远不能等于一个字符串'M'
。也许你想检查表[i+2]
而不是详细信息
?然后把它传递给函数:检查颜色(元素,表[i+2])
。我昨天做了,在条件部分做了一个小的修改,它就工作了。非常感谢你的帮助。