Каковы правила JQuery для включения аргументов в кавычки? Почему и $ (document), и $ ('document') в порядке, но разрешен только $ (this)?

Вы можете сделать это, используя шаблон модуля. Точно так же:

var foo = function() {
  var that = {};

  that.a = 7;
  that.b = 6;

  that.c = function() {
    return that.a + that.b;
  }

  return that;
};
var fooObject = foo();
fooObject.c(); //13

С помощью этого шаблона вы можете создать несколько объектов foo в соответствии с вашими потребностями.

http://jsfiddle.net/jPNxY/1/

1
задан user10777718 23 March 2019 в 12:46
поделиться

1 ответ

В вашем примере: $(this).hide();, this - это переменная JavaScript, представляющая «P», который был нажат, вызывая событие.

Переменные JavaScript никогда не заключаются в кавычки.

Селекторы элементов DOM всегда заключаются в кавычки (документ и окно являются «особыми случаями»).

Чтобы ссылаться на любые элементы в DOM, вы должны заключить его в кавычки. Например: если у вас есть HTML, который выглядит следующим образом:

<button>Click my button</button>

Ваш jQuery может выглядеть так:

$(document).ready(function({
   // listen for hover on the button
   $('button').mouseenter(function() { ... });  // 'button' is a selector for <button>, use quotations

   ...

   // assign the button to a variable and perform an action
   var buttonVar = 'button';  
   $(buttonVar).mouseenter(function(){ ... }); // buttonVar is a variable, do not use quotations

});

В случае $(this), this является переменная, которая представляет текущий активный элемент. Лично я использую $(this) при циклическом переключении между сериями элементов одного типа или элементами массива.

Например, ваш HTML может выглядеть так:

<p class="highlight">Highlight me</p>
<p class="nohighlight">Do not highlight me</p>
<p class="highlight">Highlight me</p>

ваш jQuery может выглядеть так:

$('.highlight').each(function(){         // 'highlight' is a selector for class="highlight", use quotations
   $(this).css("background","yellow");   // this is a variable, do not use quotes
});
0
ответ дан Cheryl Velez 23 March 2019 в 12:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: