2015-03-17 2 views
5

Так что я ниже код в заголовке веб-страницы:Ожидаемое выражение, получил конец сценария

<script type="text/javascript"> 
var counter = 2; 
function addNewItemField(divName) { 
    var newDiv = document.createElement("div"); 
    newDiv.id = "item_listing_" + counter; 
    newDiv.innerHTML = "<label for=\"item_" + counter + "\">Item: </label><br />"; 
    newDiv.innerHTML += "<input type=\"text\" id=\"item_" + counter + "_category\" list=\"list_categories\" name=\"items[]\">"; 
    newDiv.innerHTML += "<input type=\"number\" id=\"item_" + counter + "_amount\" mine=\"0.00\" step=\"0.01\" value=\"0.00\" name=\"amounts[]\"><br />"; 
    document.getElementById(divName).appendChild(newDiv); 
    counter++; 
} 
</script> 

Я стараюсь называть его с помощью кнопки, но я всегда получаю синтаксическую ошибку о том, «ожидаемое выражение, закончил сценарий ».

Я провел его через ЛИНТЕР, и он не обнаружил ошибок, я просмотрел его сто раз, и я не могу найти, где ошибка. Мне не нравится просто отправлять код и спрашивать: «Почему это не работает?» но я не имею ни малейшего представления о том, что происходит, поэтому я нахожусь в недоумении даже, как задать правильный вопрос.

UPDATE

Вот связанный кусок HTML furhter вниз страницы, где производится вызов функции и peices манипулируют проживаете:

<div id="item_listings"> 
    <div id="item_listing_1"> 
    <label for="item_1">Item: </label><br /> 
     <input type="text" id="item_1_category" list="list_categories" name="items[]"> 
     <input type="number" id="item_1_amount" min="0.00" step="0.01" value="0.00" name="amounts[]"><br /> 

    </div> 
</div> 
<br /> 
<input id= "add_new_item" type="button" onClick="javascript:addNewItemField("item_listings")" value="Add Another Item">') 
+2

Это отличный пример, почему одиночные кавычки часто рекомендуется для яваскрипта строк: нет обратных слеша надо .. гораздо легче читать! – Damon

+0

Он размещен через node.js, и текст уже находится внутри response.write ('...'); звонки. Вот почему все двойные кавычки. Я не хочу звучать глупо, но я все еще не понимаю, в чем проблема iamnotmaynard. – FatalKeystroke

+1

Нет проблем с тем, что вы отправили – meagar

ответ

13

onClick="javascript:addNewItemField("item_listings")" полна ошибок.

Вы не можете смешивать и сравнивать двойные кавычки таким образом. Вам нужно использовать одинарные кавычки в двойных кавычках или вы просто останавливаете атрибут вашего элемента HTML раньше.

Прямо сейчас, это разбирает, как

<input id= "add_new_item" type="button" onClick="javascript:addNewItemField(" 

... а затем кучу мусора.

Вы должны использовать одиночные кавычки:

<input id= "add_new_item" type="button" onClick="javascript:addNewItemField('item_listings')" value="Add Another Item"> 
+0

Я только что увидел это через несколько секунд после публикации этого бита. Он работает после добавления некоторых экранированных одинарных кавычек (находящихся внутри другого скрипта, который цитируется). – FatalKeystroke

+1

@FatalKeystroke Спасибо. Кстати, ты толкнул меня более 100 000 :) – meagar

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