从jquery数组返回值

从jquery数组返回值,jquery,arrays,Jquery,Arrays,我创建了一个简单的html,它可以枚举名字,上面有人的名字作为类。然后我得到类名并对照数组进行检查。结果未定义。这是我的密码: var prof_name = $(this).attr('class'); var n = prof_name.split(' '); var name_out = n[0]; var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'}; var nameValue = nameList.na

我创建了一个简单的html,它可以枚举名字,上面有人的名字作为类。然后我得到类名并对照数组进行检查。结果未定义。这是我的密码:

var prof_name = $(this).attr('class');
var n = prof_name.split(' ');
var name_out = n[0];

var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList.nameout;

alert(nameValue); //this pops up as undefined

alert(nameList.rom) // this pops up as 'Rommel Santiago'
我错过了什么


谢谢。

问题是您引用的数组不正确。我假设你的
$(这个)
的类名是
romholy

您正在像这样检索
rom
var name\u out=n[0]

您需要在
名称列表
中引用
rom
键,如下所示:

var nameValue = nameList[name_out];
var prof_name = $(this).attr('class');
var n = prof_name.split(' ');
var name_out = n[0];

var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList[name_out];

alert(nameValue); //this pops up as Rommel Santiago
<div id="myDiv" data-name="Rommel Santiago"></div>
执行此操作后,更新的代码将如下所示:

var nameValue = nameList[name_out];
var prof_name = $(this).attr('class');
var n = prof_name.split(' ');
var name_out = n[0];

var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList[name_out];

alert(nameValue); //this pops up as Rommel Santiago
<div id="myDiv" data-name="Rommel Santiago"></div>
工作示例:


此外

我建议您不要使用类来存储数据

您可以使用
数据
属性标记,如下所示:

var nameValue = nameList[name_out];
var prof_name = $(this).attr('class');
var n = prof_name.split(' ');
var name_out = n[0];

var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList[name_out];

alert(nameValue); //this pops up as Rommel Santiago
<div id="myDiv" data-name="Rommel Santiago"></div>

问题是您引用的数组不正确。我假设你的
$(这个)
的类名是
romholy

您正在像这样检索
rom
var name\u out=n[0]

您需要在
名称列表
中引用
rom
键,如下所示:

var nameValue = nameList[name_out];
var prof_name = $(this).attr('class');
var n = prof_name.split(' ');
var name_out = n[0];

var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList[name_out];

alert(nameValue); //this pops up as Rommel Santiago
<div id="myDiv" data-name="Rommel Santiago"></div>
执行此操作后,更新的代码将如下所示:

var nameValue = nameList[name_out];
var prof_name = $(this).attr('class');
var n = prof_name.split(' ');
var name_out = n[0];

var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList[name_out];

alert(nameValue); //this pops up as Rommel Santiago
<div id="myDiv" data-name="Rommel Santiago"></div>
工作示例:


此外

我建议您不要使用类来存储数据

您可以使用
数据
属性标记,如下所示:

var nameValue = nameList[name_out];
var prof_name = $(this).attr('class');
var n = prof_name.split(' ');
var name_out = n[0];

var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList[name_out];

alert(nameValue); //this pops up as Rommel Santiago
<div id="myDiv" data-name="Rommel Santiago"></div>

我相信OP希望使用
name\u out
的值作为
名称列表的索引,在这种情况下:

var nameValue = nameList.nameout;
应该是:

var nameValue = nameList[name_out];

我相信OP希望使用
name\u out
的值作为
名称列表的索引,在这种情况下:

var nameValue = nameList.nameout;
应该是:

var nameValue = nameList[name_out];
正如他们所说

它与此配合使用

var prof_name = "rom holy";
var n = prof_name.split(' ');
var name_out = n[0];
alert("Parameter Selected = "+name_out);
var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList[name_out];

alert("From Object : "+nameValue); //this pops up as undefined

alert("Actual Value = "+nameList.rom) // this pops up as 'Rommel Santiago'

如果您像nameList.nameout一样调用,它实际上是在nameList中作为参数搜索nameout

如果使用nameList[nameout],它将搜索索引nameout值

正如他们所说

它与此配合使用

var prof_name = "rom holy";
var n = prof_name.split(' ');
var name_out = n[0];
alert("Parameter Selected = "+name_out);
var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList[name_out];

alert("From Object : "+nameValue); //this pops up as undefined

alert("Actual Value = "+nameList.rom) // this pops up as 'Rommel Santiago'

如果您像nameList.nameout一样调用,它实际上是在nameList中作为参数搜索nameout


如果使用nameList[nameout],它将搜索索引nameout值

嗨,阿克塞尔,我仍然得到同样的结果。如果我向nameList.name\u发出警报,我将无法定义。如果我提醒nameList.rom,那么我会得到值。name_out值的格式似乎不正确。您可以发布您试图从中检索这些值的HTML吗?我已经用解决方案更新了我的答案。我相信您只是错误地引用了数组。嗨,Axel,我仍然得到相同的结果。如果我向nameList.name\u发出警报,我将无法定义。如果我提醒nameList.rom,那么我会得到值。name_out值的格式似乎不正确。您可以发布您试图从中检索这些值的HTML吗?我已经用解决方案更新了我的答案。我相信您只是错误地引用了数组。