Javascript 试图访问值数组的无法识别的表达式

Javascript 试图访问值数组的无法识别的表达式,javascript,jquery,Javascript,Jquery,我试图访问一个包含属性子集的JS变量,其中一个属性有一个值数组,但尽管我可以访问同一对象的其他属性,但我在尝试访问该数组时遇到了一个jQuery错误,因此语法中一定有什么东西导致它中断,出现以下错误: jquery-1.8.3.min.js:2未捕获错误:语法错误,无法识别的表达式:[{“sku”:“6104”}] 我已经将变量剥离回以下内容,但不幸的是,我无法在live环境中控制此变量的语法,因此我不确定如何绕过此问题。本质上,这是为了从变量中提取数据,以便在GTM中使用 var testLa

我试图访问一个包含属性子集的JS变量,其中一个属性有一个值数组,但尽管我可以访问同一对象的其他属性,但我在尝试访问该数组时遇到了一个jQuery错误,因此语法中一定有什么东西导致它中断,出现以下错误:

jquery-1.8.3.min.js:2未捕获错误:语法错误,无法识别的表达式:[{“sku”:“6104”}]

我已经将变量剥离回以下内容,但不幸的是,我无法在live环境中控制此变量的语法,因此我不确定如何绕过此问题。本质上,这是为了从变量中提取数据,以便在GTM中使用

var testLayer = [{
    "testProperty": 'test',
    "transactionItems": "[{\"sku\":\"6104\"}]"
}];

console.log(jQuery(testLayer[0].testProperty)); // Works
console.log(jQuery(testLayer[0].transactionItems)); // Fails with unrecgnised expression

您可能希望使用
JSON.parse
访问该值:

console.log(JSON.parse(testLayer[0].transactionItems));
将包含对象文字的字符串转换为JavaScript对象

你可以试试

console.log(jQuery(JSON.parse(testLayer[0].transactionItems)));

请解释一下各种引用语的用法。特别是为什么在出错对象中转义引号-这应该是您的主要线索。您必须先阅读jQuery()的API文档。。。为什么要尝试使用字符串化数组创建jQuery对象?@tomphilps-您肯定是在尝试使用
transactionItems
值创建jQuery对象-这就是导致错误的原因。提供的答案很有用,但不要解决您的错误。使用以下代码时:
jQuery(testLayer[0].transactionItems)
,您正试图使用jQuery无法理解的参数创建jQuery对象。@tomphilps-您的代码正在向jQuery()传递字符串这意味着它试图将其用作选择器,
transactionItems
的值是字符串,而不是数组。(因此,我最初提出的关于引号的问题完全被忽略了!)这并没有解决OP询问的jQuery()错误条件。这并没有解决OP询问的jQuery()错误条件。你试过这个密码吗?它不能为所问的问题提供解决方案。@RandyCasburn所问的问题没有任何解决方案,这是一个非常糟糕的问题。e、 g.
jQuery('test')
显然对OP“有效”,所以我只是将其作为一种解决方案进行推断