Очень новичок в JS и JQuery, а также StackOverflow, поэтому, пожалуйста, простите меня, если я не "сделаю это правильно". Я думаю, что это только мой четвертый вопрос.
У меня есть код, который я (по общему признанию) плагиат из фрагментов, найденных в разных местах. Я изо всех сил пытаюсь понять пару (я думаю) очень простых понятий... просто не знал, как отменить "поиск" фрагмента кода, чтобы найти ответ самостоятельно.
В моей функции JS я выполняю некоторую условную проверку и устанавливаю различные строки, на основе которых выбирается пользовательский переключатель.
$("#showme").text("100.00");
В любом месте, которое я хочу ссылаться на это в HTML, выполняется так:
<div id=showme>
Это работает как чемпион... нет проблем.
Мой вопрос заключается в следующем: я фактически устанавливаю JS var с именем "showme" в виде строковой переменной или это просто способ просто подключить некоторый текст к элементу HTML. Другими словами... нет var, но эта структура просто служит конвейером для подключения некоторого текста?
Я знаю, что это глупо просто для большинства из вас, ребята... извините! Я пытаюсь выучить.
Грубо говоря:
$
- функция.
Эта функция принимает селектор, например, идентификатор элемента DOM, указанный в "#showme"
.
$
возвращает коллекцию элементов DOM (или пустую коллекцию, или для идентификатора, один элемент).
text
метод устанавливает (или извлекает) текст элемента DOM. Он призывал к каждому из элементов DOM.
Вы не устанавливаете какие-либо переменные явно: вы используете строку немедленную ("#showme"
) в качестве аргумента селектора для $
. jQuery принимает строку, незамедлительно переданную в text
и вводит ее в элементы DOM, выбранные значением $
.
С помощью этого кода разметки:
<div id="showme">
вы указываете браузеру, что в определенном месте в DOM (объектной модели документа) он должен добавить узел типа div
и атрибут id как "showme"
.
С помощью этого кода JavaScript/jQuery:
$("#showme")
вы запрашиваете документ для всех элементов с атрибутом id, равным "showme
". Результатом этого вызова будет объект jQuery, который аналогичен массиву, который будет иметь элементы, которые соответствуют селектору (id === "showme") в виде пронумерованных клавиш и еще несколько методов поверх этого. Одним из методов является метод text()
.
С помощью этого кода JavaScript/jQuery:
$("#showme").text("100.00");
вы устанавливаете текстовое содержимое каждого элемента с id==="showme"
на "100.00"
.
Подводя итог, кажется, что вы немного отстаете от своей логики. Вы не устанавливаете переменную равным "showme"
, вместо этого вы устанавливаете свойство на один элемент, созданный браузером. Код JavaScript действует на DOM (на ваших HTML-элементах) с действиями, которые вы кодируете (в этом случае изменяете текстовое значение). Поток следующий: разметьте интересующие вас элементы, а затем сделайте что-нибудь с ними. Установка идентификатора несколько необязательна. Вы можете действовать на любом узле в DOM на основе его относительной позиции, но этот подход легко прорывается, чем дольше целая цепочка адресов, поэтому предпочтительно выделять определенные элементы с идентификаторами и классами элементов с классами :).
Нет. "Showme" - это просто идентификатор, который должен быть уникальным - вы назначаете элемент. Любой HTML-элемент может иметь идентификатор. Рассмотрим идентификатор в качестве номера телефона для различных элементов в вашей разметке HTML.
document.getElementById('showme').innerText='100.00';
такой же как
document.querySelector('#showme').innerText='100.00';
который является таким же, как
$("#showme").text('100.00');
jQuery - это, прежде всего, сокращение времени для взаимодействия с DOM.
Тег id должен быть указан:
<div id="showme">
Ваш javascript (на самом деле jQuery) говорит, что найти элемент, Id = "showme" и установить его текстовое значение в "100.00"
Я хотел бы взглянуть на некоторые основные учебные пособия JQuery здесь, чтобы вы начали.
class="foo bar"
требует кавычек, иначе пространство между классами будет разделено на лексемы как отдельные токены.
У вас не должно быть нескольких тегов с одинаковым атрибутом идентификатора. ID должны быть уникальными. Классы должны повторяться.
jQuery похож на CSS с большинством его селекторов. Я бы рекомендовал прочитать этот пост о различиях между ID и классами и примерах использования с CSS. Тогда, возможно, это поможет вам изучить CSS и jQuery!