Javascript 将变量连接为jQuery val()参数?
我试图使用jQuery val()函数设置输入(表单中的隐藏输入)的value属性。我的想法是连接变量的名称,并将其作为参数传递给函数,但它没有像我预期的那样工作。问题代码在最后一行:Javascript 将变量连接为jQuery val()参数?,javascript,jquery,concatenation,Javascript,Jquery,Concatenation,我试图使用jQuery val()函数设置输入(表单中的隐藏输入)的value属性。我的想法是连接变量的名称,并将其作为参数传递给函数,但它没有像我预期的那样工作。问题代码在最后一行: $(document).ready(function(){ var hash = document.location.hash; var turismosSid = "1c0f8e3ec28b09f9487140930a0c0b73"; var comercialesSid = "b3
$(document).ready(function(){
var hash = document.location.hash;
var turismosSid = "1c0f8e3ec28b09f9487140930a0c0b73";
var comercialesSid = "b31150acd348f775785b7c4a7398a3c6";
if (hash === "#turismos") {
activaTab("turismos");
$('#js-sid').val(turismosSid);
} else {
activaTab("comerciales");
$('#js-sid').val(comercialesSid);
}
$('#js-turismos-btn').on('click', function(){
activaTab("turismos");
document.location.hash = "turismos";
});
$('#js-comerciales-btn').on('click', function(){
activaTab("comerciales");
document.location.hash = "comerciales";
});
function activaTab(cual){
$('#js-turismos-btn').addClass('bg-faded');
$('#js-turismos').hide();
$('#js-comerciales-btn').addClass('bg-faded');
$('#js-comerciales').hide();
$('#js-'+ cual + '-btn').removeClass('bg-faded');
$('#js-'+ cual).fadeIn(300);
$('#js-sid').val(cual + "Sid");
}
});
函数不会将输入值设置为变量turismosSid或comercialesSid,而是将值设置为字符串turismosSid或comercialesSid。我做错了什么?不幸的是,您不能通过字符串连接引用变量* 要执行所需操作,可以将
turismosSid
和comercialesSid
值放入一个对象,因为您可以使用连接在一起的字符串引用该对象的键。试试这个:
var sids = {
turismosSid: "1c0f8e3ec28b09f9487140930a0c0b73",
comercialesSid: "b31150acd348f775785b7c4a7398a3c6"
}
if (hash === "#turismos") {
activaTab("turismos");
$('#js-sid').val(sids.turismosSid);
} else {
activaTab("comerciales");
$('#js-sid').val(sids.comercialesSid);
}
// in activaTab()
$('#js-sid').val(sids[cual + "Sid"]);
*您可以使用eval()
,但这被认为是在JS代码中可能使用的最糟糕的东西,因此为了完整起见,我仅将其包含在本说明中