为什么在下面3行代码中出现javascript错误?
我在上面得到的错误是:为什么在下面3行代码中出现javascript错误?,javascript,jquery,Javascript,Jquery,我在上面得到的错误是: var pagebacklinks = new Array(); pagebacklinks[jQuery('#somevalue').val()]["something"] = 33; 尝试先将jQuery('#somevalue').val()放入变量,然后在数组中使用该变量。尝试 pagebacklinks[jQuery("#somevalue").val()] is undefined //alert(jQuery('#somevalue').val(
var pagebacklinks = new Array();
pagebacklinks[jQuery('#somevalue').val()]["something"] = 33;
尝试先将jQuery('#somevalue').val()
放入变量,然后在数组中使用该变量。尝试
pagebacklinks[jQuery("#somevalue").val()] is undefined
//alert(jQuery('#somevalue').val()); This however shows the correct value
这是因为
pagebacklinks[jQuery('#somevalue').val()]
不是数组
这应该行得通
var $val=jQuery('#somevalue').val();
var pagebacklinks = new Array();
pagebacklinks[$val]["something"] = 33;
所以正确的方法应该是
var pagebacklinks = new Array();
pagebacklinks[1] = new Array();
pagebacklinks[1][2] = 'sadfasdf';
console.log(pagebacklinks[1][2]);
JavaScript没有关联数组。您可以在此处使用对象
pagebacklinks[jQuery("#somevalue").val()] = new Array();
pagebacklinks[jQuery('#somevalue').val()]["something"] = 33;
我会这样做:
var pagebacklinks = [],
index = jQuery('#somevalue').val();
pagebacklinks[index] = {'something': 33};
我同意。如果这没有帮助,尝试硬编码该值,看看它是否有效。+1表示正确性。在旁注中,第一级数组中的项可以是另一个数组,也可以只是一个对象。
var pagebacklinks = []; // [] is a shorter version than new Array()
var vKeyLevelOne = jQuery('#somevalue').val(); // May be an int, or a string - a "variant"
if (typeof pagebacklinks[vKeyLevelOne]=='undefined') pagebacklinks[vKeyLevelOne] = [];
pagebacklinks[vKeyLevelOne]["something"] = 33;