0
chrome.tabs.executeScript(null, {code:"$.each(selectValues, function(key='" + timestamp + "', value='Custom')
{   
     $('#expire').
          append($(\"<option></option>\").
          attr(\"value\",key).
          text(value)); 
});"});

它说第一行有语法错误,WebKit 检查器显示奇怪的突出显示模式。

那有什么问题?一个朋友认为我需要在某个地方逃避一些角色。

谢谢您的帮助!

4

2 回答 2

2

这绝对不是有效的语法。您在形参列表中有一个等号。

它可能最终会变成:

$.each(selectValues, function(key='someTime', value='Custom')
{   
     $('#expire').
          append($(\"<option></option>\").
          attr(\"value\",key).
          text(value)); 
});

如果可能,我建议您使用 file 选项,这样您就不必处理转义问题:

chrome.tabs.executeScript(null, {file: "myScript.js"});

myScript.js 中的代码大概是这样的:

$.each(selectValues, function(key, value)
{   
     $('#expire').
          append($("<option></option>").
          attr("value",key).
          text(value)); 
});

但是,目前尚不清楚您要做什么。 jQuery.each接受一个带有两个参数的回调,但是你期望等号右边的值会发生什么?

于 2010-06-05T16:10:08.830 回答
1

你不能那样使用每一个。$.each()需要一个函数作为回调,它需要两个参数:indexvalue.

jQuery.each( collection, callback(indexInArray, valueOfElement) )

您不能将自己的数据传递给函数定义

这与 jQuery 无关,但通常与 JavaScript 有关。

如果您使用每个,传递给函数的参数来自集合。您不能传递自定义参数。

你想让我做什么?如果你想设置#expire只是做它没有each

$("<option></option>").val('Custom').text(timestamp).appendTo('#expire');

如果您不熟悉 jQuery,请阅读教程


在 PHP 和 Python 等其他语言中,这意味着您为参数提供默认值。然而,这在 JavaScript 中是不可能的(以这种方式)。

于 2010-06-05T16:14:51.077 回答