假设我有一个给定数组的函数,它返回一段代码,如
//the array
$arr = array("EAL" => "Eal",
"CAZO" => "Cazo",
"COS" => "Cos"
);
$result = '';
foreach ($arr as $key => $value){
$result .= ' $("'.$key.'").click(function() { '
. ' $("'.$value.'").fadeToggle();'
. ' });'
}
$result .= ' ; ';
看起来像
$result=' $("#EAL").click(function() { '
. ' $("#Eal").fadeToggle();'
. ' });'
. ' $("#CAZO").click(function() { '
. ' $("#Cazo").fadeToggle();'
. ' });'
. ' $("#COS").click(function() { '
. ' $("#Cos").fadeToggle();'
. ' });' ;
现在,当我为一个键设置多个值时,如何完成这种情况,如:
$("#CAZO").click(function() {
$("#Cazo_x").fadeToggle();
$("#Cazo_y").fadeToggle();
$("#Cazo_z").fadeToggle();
});
所以最后的结果将是
$result=' $("#EAL").click(function() { '
. ' $("#Eal").fadeToggle();'
. ' });'
. ' $("#CAZO").click(function() { '
. ' $("#Cazo_x").fadeToggle();'
. ' $("#Cazo_y").fadeToggle();'
. ' $("#Cazo_z").fadeToggle();'
. ' });'
. ' $("#COS").click(function() { '
. ' $("#Cos").fadeToggle();'
. ' });' ;
答案 0 :(得分:2)
$arr = [
'EAL' => 'Eal',
'CAZO' => [
'Cazo_x',
'Cazo_y',
'Cazo_z'
],
'COS' => 'Cos'
];
$result = '';
foreach($arr as $key => $value) {
$result .= '$("'.$key.'").click(function() {';
if(!is_array($value)) { $value = [$value]; }
foreach($value as $v) {
$result .= '$("'.$v.'").fadeToggle();'
}
$result .= '});';
}
答案 1 :(得分:2)
试试这个:
//the array
$arr = array("EAL" => "Eal",
"CAZO" => "Cazo",
"COS" => "Cos","key2" =>array("value1","value2")
);
$result = '';
foreach ($arr as $key => $value){
$result .= ' $("'.$key.'").click(function() { ';
if( is_array( $value )){
foreach( $value as $val )
{
$result .=' $("'.$val.'").fadeToggle();'
}
}else{
$result .= ' $("'.$value.'").fadeToggle();'
}
$result .= ' });'
}
$result .= ' ; ';
答案 2 :(得分:2)
使用类来避免所有重复的代码。然后你可以这样做:
$(".fadeThis").on('click', function(){
// the ID of the element is available as this.id
$(this).fadeToggle();
// $(this).children() to get the children...
});