javascript - 是否可以使用一个变量的值来定义 JavaScript 字符串中另一个变量的名称?

标签 javascript variables variable-assignment session-cookies

我正在尝试使用变量的值作为字符串内另一个变量的名称。

我搜索过,看到类似的问题,答案似乎是“学习如何使用数组,傻瓜。”但我认为我对这个问题有一个有点独特的版本。

我什至不太擅长解释这个问题,所以仅显示代码可能会更容易,我用双星包围了我感到困惑的部分(**):

<script language="JavaScript">
function bake(cookietype,ingredient) {
    **ingredient**=document.recipes.**ingredient**.value;
    document.cookie=**cookietype** + "=" + **ingredient**;
}
</script>

<form name="recipes">
    Name: <input type="text" name="flour" size="20" onBlur="bake('oreo','flour')">
    Email: <input type="text" name="eggs" size="20" onBlur="bake('milano','eggs')">
</form>

因此,如果这有意义,我想设置一个以传递给函数“bake”的第一个变量命名的 cookie,并且我希望 cookie 的内容是相应表单输入的值元素。这可能吗?一定是这样,对吧?我只是没有受过足够的教育,无法做看似相当简单的事情。

最佳答案

我不确定您是否以正确的方式进行操作,仅此而已 - 无需创建变量并将其命名为特定的表单元素。不要传递 'flour' 作为第二个参数,而是传递 this...所以它会是 onBlur="bake('oreo',this)"。然后,在您的函数中,您可以使用 ingredient.value 来获取表单输入的值。这是我使用的函数:

function bake(cookietype,ingredient) {
    var textbox_value=ingredient.value;
    document.cookie=cookietype + "=" + textbox_value;
}

和 HTML:

<form name="recipes">
    Name: <input type="text" name="flour" size="20" onBlur="bake('oreo',this)">
    Email: <input type="text" name="eggs" size="20" onBlur="bake('milano',this)">
</form>

this 指的是调用它的 HTML 元素。因此,当您将其传递给函数时,您可以通过名为 ingredient 的参数来引用它。它看起来比使用文本来指定表单中元素的名称要干净得多...特别是因为在您的示例中,文本始终引用它被调用的元素。

关于javascript - 是否可以使用一个变量的值来定义 JavaScript 字符串中另一个变量的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14471637/

相关文章:

arrays - 数组类型的 VHDL 赋值

variables - 多重分配如何运作?

javascript - 找不到 Discord.js 音乐机器人 ffmpeg?

javascript - Ionic 在一个按钮内创建两个按钮

javascript - 将一个 .each 函数中的值获取到另一个 .each 函数中

mysql - 我应该使用 0/1 还是 True/False boolean 值?

python - 为什么 foo = filter(...) 返回一个 <filter object>,而不是一个列表?

javascript - JS中带有数组的多个if语句

javascript - 无法在嵌套函数中访问 'this'

php - 影响删除的 MySQL 存储过程变量名称