javascript - 连接变量作为 jQuery val() 参数?

标签 javascript jquery concatenation

我正在尝试使用 jQuery val() 函数设置输入(表单中的隐藏输入)的 value 属性。我的想法是连接变量的名称并将其作为参数传递给函数,但它没有按我的预期工作。有问题的代码位于最后一行:

$(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,而是将值设置为 STRING turismosSid 或 comercialesSid。我做错了什么?

最佳答案

不幸的是,您无法通过字符串连接引用变量*。

要执行您需要的操作,您可以将 turismosSidcomercialesSid 值放入一个对象中,然后您可以使用连接的字符串引用该对象的键一起。试试这个:

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 代码中可能使用的最糟糕的东西,因此为了完整起见,我仅将其包含在本说明中。

关于javascript - 连接变量作为 jQuery val() 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38630533/

相关文章:

javascript - 使用正则表达式在等号后显示文本?

pandas - 如何修复属性错误: 'DataFrame' object has no attribute 'assign' with out updating Pandas?

python - 在 randint 参数中使用变量

c++ - 如何使用 stringstream 作为 C++ 函数的参数?

javascript - 支持已失效的 javascript 部署后

javascript - 您将如何使用正则表达式验证一串手机号码?

javascript - 迭代 json 时输出不一致

javascript - jquery如何获取存储在另一个变量中的变量的值

javascript - 从对象数组中删除除最后一个相似键之外的所有键

c# - 结合 JQuery Click() 和 C# Button OnClick() 事件