多Y字符串变量名在Javascript中不起作用
最近我发布了关于Javascript中动态名称的文章。我继续尝试创建一个多字符串变量名(将一个字符串和一个变量组合成一个新的变量名),但它似乎不起作用。我很困惑,因为我在做很多帖子上说要做的事情(所以我想无论如何) 无论如何,这里是我正在使用的动态变量:多Y字符串变量名在Javascript中不起作用,javascript,jquery,Javascript,Jquery,最近我发布了关于Javascript中动态名称的文章。我继续尝试创建一个多字符串变量名(将一个字符串和一个变量组合成一个新的变量名),但它似乎不起作用。我很困惑,因为我在做很多帖子上说要做的事情(所以我想无论如何) 无论如何,这里是我正在使用的动态变量: var dynamic["replyupvote"+replyid] = false; 当我叫它时,我用: dynamic["replyupvote"+replyid] 所以我的问题是我哪里做错了?如果您想查看我的完整代码: functio
var dynamic["replyupvote"+replyid] = false;
当我叫它时,我用:
dynamic["replyupvote"+replyid]
所以我的问题是我哪里做错了?如果您想查看我的完整代码:
function replyupvote(replyid, upvotes, downvotes, votesclass, votesnumber) {
var dynamic["replyupvote"+replyid] = false;
return function() {
if (dynamic["replyupvote"+replyid]) {
dynamic["replyupvote"+replyid] = true;
}
else {
$.ajax({
url: "http://localhost/postin'/categories/votes.php",
type: "POST",
data: { 'itemid': replyid,
'userid': <?php echo $_SESSION["logged_in"]; ?>,
'action': "upvotes",
'type': "reply" },
success: function() {
$("." + votesclass).css("color", "orange");
$("." + votesnumber).text(parseInt(upvotes - downvotes) + 1);
}
});
dynamic["replyupvote"+replyid] = true;
}
}
}
函数replyupvote(replyid、upvotes、downvotes、VoteClass、VoteNumber){
var dynamic[“replyupvote”+replyid]=false;
返回函数(){
if(动态[“ReplyUpNote”+replyid]){
动态[“ReplyUpNote”+replyid]=真;
}
否则{
$.ajax({
url:“http://localhost/postin“/categories/vots.php”,
类型:“POST”,
数据:{'itemid':replyid,
“用户ID”:,
“行动”:“向上投票”,
'type':“reply”},
成功:函数(){
$(“+VoteClass).css(“颜色”、“橙色”);
$(“+votesnumber).text(parseInt(向上投票-向下投票)+1);
}
});
动态[“ReplyUpNote”+replyid]=真;
}
}
}
这段代码在我输入多字符串变量名之前就已经运行了。那么我做错了什么?谢谢!:)强>
编辑
我想我应该把这个扔进去。Javascript抛出一个错误,即由于语法不正确而未定义函数。无论您在此处所做的操作是否合理,要在对象上动态创建属性,您需要确保JS知道它是一个对象,而不是数组。因此,在尝试创建动态对象属性之前,请明确声明
dynamic
为对象:
var dynamic = {};
dynamic["replyupvote"+replyid] = false;
这至少可以消除语法错误。您必须首先将动态设置为对象
var dynamic = {};
dynamic["replyupvote"+replyid] = false;
variableName[keyName]=值;是对象的语法
在使用此符号之前,您必须告诉js您的变量是一个对象。js中没有动态变量名。你混淆了两个不同的概念。有一些对象属性可以动态存储和检索。哦,我真正的意思是将字符串和变量组合成一个新的变量名。您将数据存储在
动态
对象中,对吗?你是如何定义它的?使用dynamic[varname]
应该可以。我的意思是你不能这么做。你可以使用对象属性,但不能使用变量。哦,我在看这些帖子:不幸的是,@Tony在你之前一分钟发布了一个相同的答案,所以你有责任让你的答案更具原创性我的stackoverflow生活,总是迟到30到20分钟。我想我需要提高我的回答速度lol