chrome.tabs.executeScript(null, {code:"$.each(selectValues, function(key='" + timestamp + "', value='Custom')
{
$('#expire').
append($(\"<option></option>\").
attr(\"value\",key).
text(value));
});"});
它表示第一行有语法错误,WebKit检查器显示奇怪的突出显示模式。
这有什么问题?一位朋友认为我需要在某处逃脱一些角色。
感谢您的帮助!
答案 0 :(得分:2)
这绝对不是有效的语法。你在形式参数列表中有一个等号。
它可能会最终成为:
$.each(selectValues, function(key='someTime', value='Custom')
{
$('#expire').
append($(\"<option></option>\").
attr(\"value\",key).
text(value));
});
我建议您尽可能使用文件选项,这样您就不必处理转义问题了:
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使用两个参数进行回调,但您对等号右侧的值有什么期望呢?
答案 1 :(得分:1)
你无法使用那种方式。 $.each()
期望函数作为回调,需要两个参数:index
和value
。
jQuery.each( collection, callback(indexInArray, valueOfElement) )
您无法将自己的数据传递给功能定义。
这与jQuery无关,但与JavaScript有关。
如果使用each,则传递给函数的参数来自集合。您无法传递自定义参数。
你想做什么?如果您想设置#expire
,请执行此操作而不使用each
:
$("<option></option>").val('Custom').text(timestamp).appendTo('#expire');
如果您不熟悉jQuery,请阅读tutorial。
在PHP和Python等其他语言中,它意味着您为参数提供默认值。但是这在JavaScript中是不可能的(以这种方式)。