从jquery数组返回值

时间:2013-04-12 15:07:42

标签: 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.nameout;

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

alert(nameList.rom) // this pops up as 'Rommel Santiago'

我错过了什么?

感谢。

3 个答案:

答案 0 :(得分:2)

问题是您错误地引用了数组。我假设$(this)的班级名称是rom holy

您正在检索rom,如下所示:var name_out = n[0];

您想引用rom中的nameList密钥,您可以这样:

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

工作示例:http://jsfiddle.net/6GM7T/2/


此外

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

您可以改为使用data属性标记,如下所示:

<div id="myDiv" data-name="Rommel Santiago"></div>

您可以使用以下命令轻松地使用jQuery检索该数据:

$('#myDiv').data('name'); //returns Rommel Santiago

答案 1 :(得分:1)

我认为OP希望使用name_out的值作为nameList的索引,在这种情况下:

var nameValue = nameList.nameout;

应该是:

var nameValue = nameList[name_out];

答案 2 :(得分:1)

正如他们所说

适用于此

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'

http://jsfiddle.net/Kartheek/nx3WQ/1/

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

如果你使用nameList [nameout],它会搜索index nameout值。