2015-08-25 2 views
-2

Прежде, чем я начну, я хочу указать, что я очень очень очень новичок в JS и jQuery, поэтому, если это кажется очень простым решением для очень глупой проблемы, то есть как ожидалось.Проблемы с JS и jQuery

У меня проблема, которую я хочу решить, используя JS и jQuery, где скрипт используется для вставки содержимого на страницу. Вот часть, что браузер попасться в консоли/отладчик вещь:

if(fname != "" && fname != null) { 
    var newRow = 'A very long string whose contents are irrelevant here.' 
    $(".all-waiting").append(newRow); 
} 

Часть она становится вешали на специально в заявлении JQuery $, который предполагается использовать для добавления содержимого строки к определенному элементу страницы. Я скопировал формат инструкции jQuery из учебника онлайн и проверил его против версии, которую я скопировал для другого проекта, и мне удалось успешно работать. Что я здесь делаю неправильно? Что мне делать, чтобы добавить строку newRow в .all-waiting?

Если это имеет значение, я представляю этот скрипт через внешнюю страницу JS, импортированную в HTML-страницу моего собственного создания.

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

Edit: Вот полный соответствующий раздел кода JS:

/* ~~~~ Get's variables from URL ~~~~ */ 
// Syntax: getUrlVars()["variable"]; 
function getUrlVars() { 
    var vars = {}; 
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { 
     vars[key] = value; 
    }); 
    return vars; 
} 

var fname = getUrlVars()["fname"]; 
var lname = getUrlVars()["lname"]; 
var action = getUrlVars()["action"]; 
var other = getUrlVars()["other"]; 



if(fname != "" && fname != null) { 
    var newRow = '<tr><td class="time">00:00</td><td class="customer"><div class="cust-name">' + fname + ' ' + lname + ' </div><div class="cust-deets">Female, 40</div></td><td class="area none">' + action + '</td><td class="menu">___</td></tr>' 
    $(".all-waiting").append(newRow); 
} 

И соответствующий HTML раздел:

<table class="all-waiting"> 
    <tr> 
     <td class="time long"> 
      15:30 
     </td> 
     <td class="customer"> 
      <div class="cust-name"> 
       Samantha Wilson 
      </div> 
      <div class="cust-deets"> 
       Female, 35 
      </div> 
     </td> 
     <td class="area"> 
      Foreign currency 
     </td> 
     <td class="menu"> 
      ___ 
     </td> 
    </tr> 
    <tr> 
     <td class="time"> 
      09:00 
     </td> 
     <td class="customer"> 
      <div class="cust-name"> 
       Ethan Blucher 
      </div> 
      <div class="cust-deets"> 
       Male, 26 
      </div> 
     </td> 
     <td class="area"> 
      Business banking 
     </td> 
     <td class="menu"> 
      ___ 
     </td> 
    </tr> 
</table> 

Сценарий должен добавить новую строку в таблице, основанной на Параметры URL.

+0

вы включили библиотеку Jquery на страницу –

+0

В голове страницы HTML, я импортировал следующие: ' ' – Imamadmad

+0

Что значит« получать повесил трубку »? Вы получаете _error_? Если да, то это '' $ 'не определено '? – Xufox

ответ

1

Кажется, вы не ссылаетесь или не загружаете jQuery перед своим скриптом.

Сначала попробуйте заменить

<script src="js/jquery.js"></script> 

с ...

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 

Если это не работает, то это вопрос Jquery еще не загружается при попытке ее использовали. Если это так, я изменю свой ответ, но сомневаюсь. Шансы заменяют эту линию, и мы знаем, что этот код работает, когда загружается jQuery (о чем свидетельствует скрипка Аруна). Так что если это работает, то это просто вопрос получения правильного пути для вашего атрибута тега src.

В соответствии с вашими комментариями вы имеете файловую структуру, как ...

~/page.html 
~/script.js 
~/js/jquery.js 

Поэтому убедитесь, что вы на самом деле источник JQuery, сохраненный как jquery.js в папке js в папке, что файл HTML находится в - или найти/скачать его и/или обновить путь соответственно.

+0

Большое вам спасибо! Я знал, что это будет что-то простое, что я пропустил! Это научит меня функциям Google, прежде чем делать правильный урок с самого начала! – Imamadmad

+0

@Imamadmad Если вы «исправили» это, просто заменив свою линию шахтой, попробуйте понять, почему это решает проблему. Вам нужен этот внешний ресурс (jQuery), и у вас его нет в локальной файловой системе вашего веб-сервера (локальный путь указывается относительным путем - путь, начинающийся с '/', '. /' Или '../'), поэтому строка, которую я вам предоставил, на самом деле собирается и загружает копию этого файла из удаленного репозитория. В наши дни это очень стандартная вещь, но вы должны понимать, что вы полагаетесь на стороннюю сторону, чтобы предоставить вам источник * во время выполнения *. –

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