Jquery не работает html метод

Не работает jQuery html-метод

Я создаю функциональность upvote/downvote в приложении, которое я создаю. Когда пользователь нажимает кнопку «вверх» или «вниз», запрос ajax отправляется контроллеру, который обновляет подсчет голосов в базе данных, а затем запускает файл javascript, который использует jquery для обновления отображаемого количества голосов и отключения нажатия кнопки. Вот jquery для обновления дисплея:

Все работает, за исключением обновления экрана голосования и изменения кнопки upvote (другими словами, этот код не запускается. База данных обновляется, поэтому я знаю, что программа выполняется успешно.). Я также знаю, что проблема связана с jquery выше, потому что он работает, когда я показываю гораздо меньше html. Вот более простой код, который я ранее работал:

Я утверждаю, что я хватаю правильный элемент. Содержимое элемента html, которое я заменяю, это:

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

РЕДАКТИРОВАТЬ

Как указано в комментариях ответа Trip, я смог напечатать foobar, изменив это:

Однако, когда я заменяю foobar на более сложный код:

Проблема возвращается. Пользовательский дисплей не обновляется. Однако на этот раз консоль имеет ошибку jquery:

EDIT 2

После игры с кодом jquery я заметил пару вещей. Во-первых, я должен минимизировать код. Если я этого не сделаю, jQuery не срабатывает. Например, я должен сделать это:

Во-вторых, после ввода каждой строки обратно в html-метод я идентифицировал строку, которая вызывает проблему. Эта строка:

Вызывает неудачу jquery. Я пробовал линию без «сырой»:

Но все равно ничего.

РЕШЕНИЕ — AH YEA

Чтобы заставить линию ссылок работать, мне пришлось сбежать от нее так:

Источник

Частые ошибки новичков при работе с jQuery

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

Консоль должна быть открыта. Закрытая консоль, конечно же, не ошибка в коде, однако, ошибочный подход во время отладки сценария. Именно консоль поможет быстро сориентироваться в том, где и какая допущена ошибка, а также следить за ходом выполнения сценария. Во всех современных браузерах — этот инструмент присутствует по умолчанию. Например, в FireFox консоль можно вызвать с помощью сочетания клавиш Ctrl + Shift + K или «Меню» > «Разработка» > «Веб-консоль«. В Chrome вызывается сочетанием клавиш Ctrl + Shift + J или «Меню» > «Дополнительные инструменты» > «Консоль JavaScript«. В Opera — сочетание клавиш аналогичны Chrome, вызов из меню — «Инструменты разработчика» > «Веб-инспектор» («Инструменты разработчика» предварительно включить в пункте «Другие инструменты»). Кроме того, существуют инструменты/аддоны, как, например, замечательный FireBug под FireFox или Web Developer для Chrome и этот же инструмент для FireFox

Читайте также:  Стиралка полуавтомат не работает центрифуга

Не подключена библиотека. У кого-то этот пункт вызовет улыбку, но могу вас уверить, что по моей личной статистике, как минимум раз в месяц, на форуме появляется вопрос о том, почему ничего не работает, а после долгих выяснений оказывается, что js-файл с библиотекой просто не подключен на странице. Библиотека jQuery должна быть по возможности новее, подключена первой, до скриптов, в которых она используется и в единственном числе. Если вы используете какой-нибудь старенький плагин, которому для работы требуется такая же старая версия jQuery, то есть несколько нормальных путей решения, чем подключение на страницу и новой библиотеки и старой для плагина:

  1. Оставляем одну новую библиотеку и сразу после неё подключаем плагин jQuery Migrate, который, в большинстве случаев, помогает решить вопрос совместимости.
  2. Без каких-либо дополнений, сами заменяем в плагине удаленные методы на их современные аналоги. Обычно, это такие устаревшие или удаленные методы, как live(), $.browser и т.д.
  3. И конечно же, можно найти современный аналог плагина, который вам понравился. Не зацикливайтесь на одном.

Ну, и примерный порядок подключения:

Код не обернут в конструкцию DOM-Ready. Одна из наиболее популярных ошибок. Если ваш скрипт расположен/подключен в теге , то его нужно обязательно заключить в такой код:

Это так называемый «обработчик готовности дерева DOM«. Попробую «на пальца» и простым языком объяснить, что это и зачем нужно. Браузер загружает страницу, начиная с первого на ней элемента и движется вниз. Всё, что подключено в теге : CSS, JS и т.д., загрузится и начнёт выполняться раньше, чем дело дойдёт до элементов, которые находятся в . Поэтому, при обращении к элементу из JS-кода, его еще попросту нет на странице. А обёртка, которую я показал выше, откладывает выполнение сценария до тех пор, пока вся структура страницы не будет загружена браузером полностью. Как вариант, который совсем не лишён логики и даже рекомендуется тем же Google, весь свой код можно расположить в конце страницы, перед закрывающим тегом

Читайте также:  Как настроить часы смарт браслет м4 через приложение wearfit

Источник

почему код JQuery не работает в моем проекте

У меня есть проблема с моим кодом, я хочу измерить общую ширину моего ul и проверить, если он меньше, чем ширина окна, он не показывает переполнение: прокрутка, и если он больше, чем ширина окна, просто скрыть прокрутку под Ли (ы).
каждый li имеет ширину 120px и его поле равно: 0 2px; Вот почему я использую 120 и 4, чтобы подвести итог общей ширины .ulcontainmatrix

Моя проблема: код работает правильно, когда я использую его в консоли браузера и нажимаю Run code, но не работает в моем коде при загрузке окна !!

3 ответа

Большая проблема, и я должен сказать, что вы правы на 90%, , но некоторые изменения необходимы.

Я изменил ваш CSS на это:

И некоторые изменения в вашем коде jquery:

И все работает отлично.

Возможно, вы захотите обернуть свой код jQuery в «готовое» событие.

Это позволит убедиться, что код javascript внутри него будет выполняться только после загрузки вашего документа (следовательно, все элементы, которые могут быть задействованы в вашем коде javascript, существуют в документе)

Другой подход состоит в том, чтобы переместить ваш javascript внизу тега body, но это не рекомендуется (как примечание: рекомендуется загружать файлы javascript внизу документа, если это возможно).

Краткое объяснение, почему это происходит .

В некоторых случаях ваш код javascript может быть выполнен до того, как некоторые элементы в вашем HTML будут добавлены и доступны для использования (процесс рендеринга документа), поэтому, если у вас есть некоторый код jQuery, который намеревается использовать или манипулировать элементом, которого еще нет доступно — ваш код не будет работать (обычно без каких-либо ошибок и заставляет задуматься «почему он не работает?»)

Поэтому проще всего вставить JavaScript после позиции в документе, куда вставляются элементы (обычно в конце документа, непосредственно перед тегом

Источник

Jquery не работает html метод

Возвращает или изменяет html-содержимое выбранных элементов

version added: 1.0 .html()

Получает HTML-содержимое первого элемента в наборе.

version added: 1.0 .html( htmlString )

htmlString

Тип: строка html

HTML строка которую нужно вставить в элемент.

version added: 1.4 .html( function(index, oldhtml) )

function(index, oldhtml)

Заменяет html-содержимое каждого выбранного элемента в наборе на возвращенное функцией function значение. Функция вызывается, для каждого из выбранных элементов.

Данный метод нельзя применять к XML документам.

Мы можем использовать метод .html() для получения содержимого элемента. Если под селектор попадут несколько элементов, то будет извлечён только первый:

Данные будут извлечены из первого

Читайте также:  Не работает подсветка прикуривателя лансер 9

Результат будет такой:

Данный метод использует нативное свойство innerHTML. Некоторые браузеры могут возвратить результат не совсем в таком виде, в котором он присутствует на странице. К примеру, Internet Explorer иногда упускает кавычки у значений атрибутов.

Пример:

Преобразуем html в текст, при клике по параграфу.

Метод .html() может использоваться так же для замещения содержимого элемента.

Возьмём следующий HTML фрагмент:

Данная строчка заменит содержимое элемента

Начиная с jQuery 1.4, метод .html() позволяет формировать HTML контент элемента в отдельной функции.

Дан документ с шестью параграфами. Заменим их содержимое с

All new content for 6 paragraphs!

Примеры

Пример: добавляем html каждому из div-ов

Пример: добавляем html каждому из

Связанные уроки:

15 особенностей jQuery 1.4

jQuery постоянно развивается. Релиз версии 1.4 состоялся в январе. jQuery 1.4 получила много новых функций, расширений и имеет значительно лучшую производительность. Данная статья посвящена описанию основных улучшений jQuery 1.4.

Доступ к элементам контента с помощью jQuery

jQuery даёт возможность работать с элементами HTML и их содержимым различными способами. Например, вы можете добавить новые элементы внутрь, вокруг, до и после существующих элементов; вы можете заменить один элемент другим (или другими); вы можете читать и заменять содержимое элементов.

Источник

JQuery html() метод не работает

Когда страница загружается, все в порядке, я выбираю какой-то регион и выбираю города, заполненные данными ajax. Но когда я выбираю другой регион, данные в выбранных городах просто пополняются новыми данными.

Так что проблема в том, что у меня есть города из обоих регионов (новых и старых). И неважно, сколько раз я выбираю другой регион, это просто добавление новых данных в выбор города. В коде все выглядит нормально, и при изменении региона я поместил.html(»), поэтому он должен быть пустым перед вставкой полученных значений. Но я не могу понять, что это за ошибка.

6 ответов

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

Проблема в том, что когда вы получаете данные, вы добавляете их в options переменная, которая является глобальной. Итак, просто добавьте это, прежде чем $(responce.cities).each(function()< :

И все должно быть хорошо.

Кстати, это ответ, а не ответ.:)

В функцию getCities добавьте var options=»; как первая строка Вы постоянно добавляете это, но никогда не очищаете это, следовательно, проблема.

Попробуйте сбросить ваши «options» var перед циклом:

1) city.attr(‘disabled’, true); должно быть city.prop(‘disabled’, ‘disabled’);

2) Попробуйте сбросить настройки options вернуться к пустой строке перед ее повторным заполнением следующим образом:

Источник

Оцените статью