Нужна помощь в понимании ссылок на JS & JQuery Vars

0

Очень новичок в JS и JQuery, а также StackOverflow, поэтому, пожалуйста, простите меня, если я не "сделаю это правильно". Я думаю, что это только мой четвертый вопрос.

У меня есть код, который я (по общему признанию) плагиат из фрагментов, найденных в разных местах. Я изо всех сил пытаюсь понять пару (я думаю) очень простых понятий... просто не знал, как отменить "поиск" фрагмента кода, чтобы найти ответ самостоятельно.

В моей функции JS я выполняю некоторую условную проверку и устанавливаю различные строки, на основе которых выбирается пользовательский переключатель.

$("#showme").text("100.00");

В любом месте, которое я хочу ссылаться на это в HTML, выполняется так:

<div id=showme>

Это работает как чемпион... нет проблем.

Мой вопрос заключается в следующем: я фактически устанавливаю JS var с именем "showme" в виде строковой переменной или это просто способ просто подключить некоторый текст к элементу HTML. Другими словами... нет var, но эта структура просто служит конвейером для подключения некоторого текста?

Я знаю, что это глупо просто для большинства из вас, ребята... извините! Я пытаюсь выучить.

Теги:
variables

5 ответов

2
Лучший ответ

Грубо говоря:

$ - функция.

Эта функция принимает селектор, например, идентификатор элемента DOM, указанный в "#showme".

$ возвращает коллекцию элементов DOM (или пустую коллекцию, или для идентификатора, один элемент).

text метод устанавливает (или извлекает) текст элемента DOM. Он призывал к каждому из элементов DOM.

Вы не устанавливаете какие-либо переменные явно: вы используете строку немедленную ("#showme") в качестве аргумента селектора для $. jQuery принимает строку, незамедлительно переданную в text и вводит ее в элементы DOM, выбранные значением $.

2

С помощью этого кода разметки:

<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 на основе его относительной позиции, но этот подход легко прорывается, чем дольше целая цепочка адресов, поэтому предпочтительно выделять определенные элементы с идентификаторами и классами элементов с классами :).

  • 0
    Спасибо! Это очень помогает. Да, я всегда чувствовал, что это кажется «задом наперед», но я не могу найти правильный синтаксис, чтобы показать мою переменную «number» в элементе div. Я наткнулся на $ ("# showme"). Text ("100.00"); и увидел, что это сработало, поэтому я продолжал создавать плохой код поверх плохого! (История моей жизни!) Предполагая, что у меня действительно есть плавающая переменная showme (скажем, 100.0) ... какой будет правильный синтаксис для отображения этого в HTML DIV, отформатированном как цена?
1

Нет. "Showme" - это просто идентификатор, который должен быть уникальным - вы назначаете элемент. Любой HTML-элемент может иметь идентификатор. Рассмотрим идентификатор в качестве номера телефона для различных элементов в вашей разметке HTML.

document.getElementById('showme').innerText='100.00';

такой же как

document.querySelector('#showme').innerText='100.00';

который является таким же, как

$("#showme").text('100.00');

jQuery - это, прежде всего, сокращение времени для взаимодействия с DOM.

0

Тег id должен быть указан:

<div id="showme">

Ваш javascript (на самом деле jQuery) говорит, что найти элемент, Id = "showme" и установить его текстовое значение в "100.00"

Я хотел бы взглянуть на некоторые основные учебные пособия JQuery здесь, чтобы вы начали.

  • 0
    опечатка с моей стороны ... это действительно указано в моем коде.
  • 0
    В любом случае его не нужно цитировать, хотя, по мнению IMO, так и должно быть. Они являются обязательными в XHTML. Иногда они требуют кавычек, например, несколько классов: class="foo bar" требует кавычек, иначе пространство между классами будет разделено на лексемы как отдельные токены.
Показать ещё 7 комментариев
0

У вас не должно быть нескольких тегов с одинаковым атрибутом идентификатора. ID должны быть уникальными. Классы должны повторяться.

jQuery похож на CSS с большинством его селекторов. Я бы рекомендовал прочитать этот пост о различиях между ID и классами и примерах использования с CSS. Тогда, возможно, это поможет вам изучить CSS и jQuery!

Разница между id и классом в CSS и когда его использовать

  • 0
    Хотя это правда, это никак не решает вопрос.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню