Javascript,如果为true,则添加字符串

Javascript,如果为true,则添加字符串,javascript,jquery,string,add,Javascript,Jquery,String,Add,我需要修改此函数: function checkPermissions(fid, obj) { $("#permissions_"+fid+"_canview").attr("checked", obj.checked); } 如果参数“n”为“true”,则将输出#permissionsSet而不是#permissions 这可能吗?OP澄清了无论是否提供第三个参数都要更改的问题。给你 function checkPermissions(fid, obj, n) { var id =

我需要修改此函数:

function checkPermissions(fid, obj) {

$("#permissions_"+fid+"_canview").attr("checked", obj.checked);

}
如果参数“n”为“true”,则将输出#permissionsSet而不是#permissions


这可能吗?

OP澄清了无论是否提供第三个参数都要更改的问题。给你

function checkPermissions(fid, obj, n) {
  var id = n !== undefined ? '#permissionsSet' : '#permissions';
  $(id + fid + "_canview").attr("checked", obj.checked);
}
注:此功能可自由使用,可传递2或3个参数(或任何数字)


您熟悉
if
语句吗?我的意思是,如果函数回调函数中定义了'n'。checkPermissions(1,this,true)然后第三个参数是一个“n”,但我还需要同时使用相同的函数,而不使用n参数:checkPermission(1,this)Aight,现在当我选中我的复选框时,firebug说checkPermission函数未定义。我的onClick回调:
onClick=“checkPermissions('.$gid',this);“
@Lucas,这可能是一个单独的问题,因为在定义
onClick
处理程序之后,javascript代码的顺序不同。您需要确保函数是在附加handler的元素之前定义的。谢谢您,JaredPar,我现在可以开始工作了。再次感谢你。
checkPermissions(1, this);        // Ok n === undefined 
checkPermissions(1, this, true);  // Ok n === true
checkPermissions(1);              // Okish n and obj === undefined
function checkPermissions(fid, obj, n) {

    $("#permissions" + ((n) ? "Set" : "") + "_"+fid+"_canview").attr("checked", obj.checked);

}