我正在尝试使用变量的值作为字符串内另一个变量的名称。
我搜索过,看到类似的问题,答案似乎是“学习如何使用数组,傻瓜。”但我认为我对这个问题有一个有点独特的版本。
我什至不太擅长解释这个问题,所以仅显示代码可能会更容易,我用双星包围了我感到困惑的部分(**):
<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/