2012-05-16 4 views
1

Когда я вручную нажимаю параметры один за другим следующим образом: aoData.push ({"name": "process", "value": "fetch"}); он работает хорошо, без сообщения об ошибке.jQuery альтернатива PHP foreach()

Но, теперь я хочу объявить tableXtraPostParams массив в верхней части сценария и нажмите один за Params этот массив в в aoData

Вот кусок кода работает отлично

var tableXtraPostParams = { 
    "process":"fetch", 
    "which":"mine" 
}; 
$.each(tableXtraPostParams, function(n, v){ 
    aoData.push({ 
     "name": n, 
     "value": v 
    }); 
}); 

Но я м получать сообщение об ошибке в журнале JS

Синтаксис ошибки, непризнанная выражение: [объект Object]

enter image description here

Что мне здесь не хватает?

Любые предложения будут очень благодарны!

UPDATE

Я знаю, что это ошибка, связанная с моей модификацией. (Потому что, когда я удалить $.each, я не получаю сообщение об ошибке, как это)

Вот что Aodata выглядит, прежде чем толчке

[Object { name="sEcho", value=1}, Object { name="iColumns", value=8}, Object { name="sColumns", value=""}, Object { name="iDisplayStart", value=0}, Object { name="iDisplayLength", value=25}, Object { name="mDataProp_0", value=0}, Object { name="mDataProp_1", value=1}, Object { name="mDataProp_2", value=2}, Object { name="mDataProp_3", value=3}, Object { name="mDataProp_4", value=4}, Object { name="mDataProp_5", value=5}, Object { name="mDataProp_6", value=6}, Object { name="mDataProp_7", value=7}, Object { name="sSearch", value=""}, Object { name="bRegex", value=false}, Object { name="sSearch_0", value=""}, Object { name="bRegex_0", value=false}, Object { name="bSearchable_0", value=true}, Object { name="sSearch_1", value=""}, Object { name="bRegex_1", value=false}, Object { name="bSearchable_1", value=true}, Object { name="sSearch_2", value=""}, Object { name="bRegex_2", value=false}, Object { name="bSearchable_2", value=true}, Object { name="sSearch_3", value=""}, Object { name="bRegex_3", value=false}, Object { name="bSearchable_3", value=true}, Object { name="sSearch_4", value=""}, Object { name="bRegex_4", value=false}, Object { name="bSearchable_4", value=true}, Object { name="sSearch_5", value=""}, Object { name="bRegex_5", value=false}, Object { name="bSearchable_5", value=true}, Object { name="sSearch_6", value=""}, Object { name="bRegex_6", value=false}, Object { name="bSearchable_6", value=true}, Object { name="sSearch_7", value=""}, Object { name="bRegex_7", value=false}, Object { name="bSearchable_7", value=true}, Object { name="iSortingCols", value=1}, Object { name="iSortCol_0", value=0}, Object { name="sSortDir_0", value="asc"}, Object { name="bSortable_0", value=true}, Object { name="bSortable_1", value=true}, Object { name="bSortable_2", value=true}, Object { name="bSortable_3", value=true}, Object { name="bSortable_4", value=true}, Object { name="bSortable_5", value=true}, Object { name="bSortable_6", value=true}, Object { name="bSortable_7", value=true}] 

Вот после толчка

[Object { name="sEcho", value=1}, Object { name="iColumns", value=8}, Object { name="sColumns", value=""}, Object { name="iDisplayStart", value=0}, Object { name="iDisplayLength", value=25}, Object { name="mDataProp_0", value=0}, Object { name="mDataProp_1", value=1}, Object { name="mDataProp_2", value=2}, Object { name="mDataProp_3", value=3}, Object { name="mDataProp_4", value=4}, Object { name="mDataProp_5", value=5}, Object { name="mDataProp_6", value=6}, Object { name="mDataProp_7", value=7}, Object { name="sSearch", value=""}, Object { name="bRegex", value=false}, Object { name="sSearch_0", value=""}, Object { name="bRegex_0", value=false}, Object { name="bSearchable_0", value=true}, Object { name="sSearch_1", value=""}, Object { name="bRegex_1", value=false}, Object { name="bSearchable_1", value=true}, Object { name="sSearch_2", value=""}, Object { name="bRegex_2", value=false}, Object { name="bSearchable_2", value=true}, Object { name="sSearch_3", value=""}, Object { name="bRegex_3", value=false}, Object { name="bSearchable_3", value=true}, Object { name="sSearch_4", value=""}, Object { name="bRegex_4", value=false}, Object { name="bSearchable_4", value=true}, Object { name="sSearch_5", value=""}, Object { name="bRegex_5", value=false}, Object { name="bSearchable_5", value=true}, Object { name="sSearch_6", value=""}, Object { name="bRegex_6", value=false}, Object { name="bSearchable_6", value=true}, Object { name="sSearch_7", value=""}, Object { name="bRegex_7", value=false}, Object { name="bSearchable_7", value=true}, Object { name="iSortingCols", value=1}, Object { name="iSortCol_0", value=0}, Object { name="sSortDir_0", value="asc"}, Object { name="bSortable_0", value=true}, Object { name="bSortable_1", value=true}, Object { name="bSortable_2", value=true}, Object { name="bSortable_3", value=true}, Object { name="bSortable_4", value=true}, Object { name="bSortable_5", value=true}, Object { name="bSortable_6", value=true}, Object { name="bSortable_7", value=true}, Object { name="process", value="fetch"}, Object { name="which", value="all"}] 
+2

Вы объявили aoData как массив ? – coolguy

+0

@ubercooluk aaData - Json like '{" aaData ": [ [" AAA "," BBB "," 100 "," 2 "], [" AAA "," BBB "," 100 "," 2 " ], [«AAA», «BBB», «100», «2»] ]} ' – heron

+3

Что говорит ubercooluk, так это то, что у bare-object нет метода push. – Corbin

ответ

0

Включили ли вы DataTables .js файл? Например,

<script type="text/javascript" src="/js/dataTables/jquery.dataTables.js"></script> 
+0

Отсутствующий файл не может вызывать синтаксическую ошибку. – ThiefMaster

+0

Я могу с уверенностью сказать, что ты прав. Я шел по комментариям, которые люди спрашивали о том, что aoData является массивом. –

+0

Да этот файл включен. Даже с этим сообщением об ошибке, мой скрипт работает хорошо. Но я хочу понять, что вызывает появление этого сообщения об ошибке. Обновленный вопрос с более глубокими подробностями. Пожалуйста, посмотрите – heron

0

Ошибка не связана с вашим кодом, если вы фактически не ввели свой собственный код в jquery.js.

Файл с таким именем, однако, сломан. Вы что-то изменили в этом файле? Если нет, просто восстановите его с помощью новой копии с http://jquery.com/

+0

Загружено и помещено свежей копией. Нет успеха. Обновленный вопрос. Взгляни, пожалуйста. – heron

0

tableExtraParams.foreach. И второй параметр $ .each, function (k, v) не работает. Требуется два параметра: индекс и ключ. k будет равно 0,1,2,3 и т. д., а v будет равно «процессу», «которому» и т. д., если вы хотите получить пару ключ/значение, используйте

var tableXtraPostParams = { 
    "process":"fetch", 
    "which":"mine" 
}; 
$.each(tableXtraPostParams, function(n, v){ 
    aoData.push({ 
     "name": v, 
     "value": tableXtraPostParams[v] 
    }); 
}); 
Смежные вопросы