В чем разница между $ (var) и var? - PullRequest
0 голосов
/ 03 мая 2019

Насколько я понял, вы можете использовать элемент DOM в качестве селектора jQuery, например, $(document).
Так почему же функция jQuery attr() работает в обоих этих случаях?

let v = $("#nodeID");
//First case
$(v).attr("href","www1"); //works
//Second case
v.attr("href","www2"); //also works

Какая разница?

Ответы [ 2 ]

2 голосов
/ 03 мая 2019

Когда вы передаете объект jQuery в $, он возвращает объект jQuery, содержащий те же элементы, что и в исходном переданном вами объекте jQuery. Они в основном одинаковы (хотя объекты не ===). Вы можете вкладывать объекты jQuery в $ столько, сколько хотите, это не будет иметь значения, это просто странно.

$($($('div'))).text('foo');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div></div>
1 голос
/ 03 мая 2019

Существует множество различных значений, которые вы можете передать функции jQuery. В этом случае вы передаете выбор jQuery , о котором говорится в документации:

выбор
Тип: jQuery
Существующий объект jQuery для клонирования.

Итак, вы клонируете var.

В этом контексте это совершенно бессмысленно. (Это может быть полезно, если вы собираетесь изменить значение, но необходимо сохранить оригинал для использования в другом месте).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...