Различие между $ (“#elemento”) и $ (“#elemento”) [0] Jquery

Я стараюсь понимать, как функционируют Javascript и Jquery. Я знаю, что это:

var contenido = document.getElementById("contenido");
contenido.text("Hola desde Javascript");

Это то же самое что это:

var contenido = $("#contenido");
contenido.text("Hola desde Jquery");

Но я понимаю, что это:

var contenido = document.getElementById("contenido");

Он равен этому в Jquery:

var contenido = $("#contenido")[0];

Почему меня добавляет текст без [0] в конце концов? И если я это добавляю, он не показывает мне сообщение, почему, если это то же самое? В котором моменты я должен использовать [0] в конце концов, пример?

1
задан 22.01.2017, 22:57
0 ответов

В следующем примере ты увидишь, что это не то же самое.

console.log($('#contenido') === document.getElementById('contenido') ); // false

console.log($('#contenido')[0] === document.getElementById('contenido') ); // true

console.log($('#contenido').get(0) === document.getElementById('contenido') ); // true
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="contenido"></div>

И он проистекает потому что jQuery возврати один array.

Если ты используешь [0] или .get() ты имеешь доступ к DOM Node.

Практические примеры:

$('#contenido1').text('si funciona 1');

$('#contenido2').get(0).innerText = 'si funciona 2';

$(document.getElementById('contenido3')).text('si funciona 3');


// los proximos ejemplos no funcionan

$('#contenido').get(0).text('no funciona');

document.getElementById('contenido4').text('no funciona');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="contenido1"></div>
<div id="contenido2"></div>
<div id="contenido3"></div>
<div id="contenido4"></div>
3
ответ дан 03.12.2019, 17:34

Заставив селектор jQuery в элемент DOM, книжный магазин, создавать Объект jQuery, который он заключает [object HTML], немедленно этот объект выставляет тебе API в более дружеским методам и Кросс Бровсер .offset(), .animate(), и т.д.... Но внутри использует ту же родную API Ванилья де Хаваскрипт.

Этот объект jQuery выставляет в индексе 0, ссылка в [object HTML], если ты хочешь выполнить на методах родной API Javascript.

Я оставляю тебе пример:

var canvas = $('#canvas');
// error getContext() es un método de la API nativa,
// por lo tanto el objeto jQuery no tiene este método
var context = canvas.getContext('2d'); 

Решение:

var context = canvas[0].getContext('2d'); 
1
ответ дан 03.12.2019, 17:34

Метод $() jQuery возврати объект в зависимости от параметра, который проходит с ним. Это означает, что, если ты перемещаешь его идентификацию как селектор только, он возвратит тебе объект, так как идентификации в HTML не могут повторяться. Взамен, если в метод $() ты перемещаешь его класс или этикетку, были селекторами, которые могут повторяться, он возвратит тебе array со всеми объектами, которые будут соответствовать с этим классом или этой этикеткой.

Я помещаю тебе пример:

index.html

<div id="header"></div>
<div class="miClase"></div>
<div class="miClase"></div>

scripts.js

$('#header').text('Hola'); // Devuelve un único objeto
$('.miClase').text('Mundo'); // Devuelve todos los objetos que tengan la clase indicada

/*
  Si quisiéramos aplicar el método text() solamente al primer elemento que tenga la clase
    miClase podríamos hacer referencia a él indicando su índice en el array que devuelve
    $('.miclase')
*/

$('.miClase')[0].text('Este es el primer div con .miClase');
1
ответ дан 03.12.2019, 17:34
  • 1
    У меня есть проблема, с которым я explicó. Я, чтобы соглашаться на весь контент формуляра, должен вводить $("#form")[0] в компьютер для того, чтобы оно функционировало. Или с JS, document.getElementById("form"). Почему я должен вводить этот в компьютер [0], если у меня только есть единственный формуляр? Ademá s - идентификация, следовательно он ú nico. –  23.01.2017, 05:49

[] он используется всегда для array, если ты добавляешь ему [0], и не t покажи, когда ты посылаешь ему текст, он, потому что он ищет, распределять текст в этот элемент, который не существует в виде, потому что ты имел бы, который это быть должен работать как array. Сделай "console.debug (контент)" для q увидь элемент, как он относится к этому. Не t я размещаю пример, потому что я отвечаю тебе с моего мобильного телефона. Извини.

0
ответ дан 03.12.2019, 17:34