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

В нем говорится, что первая строка имеет синтаксическую ошибку, а инспектор WebKit показывает нечетные шаблоны выделения.Javascript in chrome plugin имеет синтаксическую ошибку

Что не так с этим? Друг думает, что мне нужно сбежать от некоторых персонажей.

Спасибо за помощь!

+0

О, посмотрите, подсветка синтаксиса StackOverflow знает, что я пытаюсь сделать. Там он четко обозначен. – Cyclone

+0

Что такое 'selctedValues'? –

+0

http://stackoverflow.com/questions/170986/what-is-the-best-way-to-add-options-to-a-select-from-an-array-with-jquery <- – Cyclone

ответ

2

Это определенно неверный синтаксис. У вас есть знак равенства в списке формальных параметров.

Это, предположительно, в конечном итоге, как:

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

Я рекомендую вам использовать опцию файла, если это возможно, так что вам не придется иметь дело с вылетающими вопросами:

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

The предположительно код в myScript.js будет примерно таким:

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

Однако неясно, что вы пытаетесь делать. jQuery.each выполняет обратный вызов с двумя параметрами, но что вы ожидаете от значений справа от знака равенства?

+0

I ' m не уверен, как установить переменную, которая будет использоваться там, я никогда не использовал jquery. Мой вопрос касался объекта кода, который я пытаюсь выполнить, я буду рассматривать синтаксические ошибки с jquery after. Если вы знаете решение для обоих, это очень поможет! – Cyclone

+0

Что вы ожидаете от значений с правой стороны знака равенства? –

+0

Я никогда раньше не использовал jquery, я пытаюсь передать их как значения attr и text. – Cyclone

1

Вы не можете использовать каждый способ. $.each() ожидает функцию обратного вызова, которая ожидает два параметра: index и value.

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

Вы не можете передавать свои собственные данные для определения в функции.

Это не связано с jQuery, а с JavaScript в целом.

Если вы используете каждый, параметры, которые передаются функции, поступают из коллекции. Вы не можете передавать пользовательские параметры.

Что вы хотите сделать? Если вы хотите установить #expire просто сделать это без each:

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

Если вы не знакомы с JQuery, а затем прочитать tutorial.


На других языках, таких как PHP и Python, это означает, что вы предоставляете параметры по умолчанию для параметров. Однако это невозможно в JavaScript (таким образом).

Смежные вопросы