English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Breve discussão sobre a diferença entre eq() no jQuery e element.[] no DOM

Como mostrado abaixo:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8>
  <title>Title</title>
</head>
<body>
  <a class="a">#1</a>
  <a class="a">#2</a>
  <a class="a">#3</a>
  <script src="js/jq.js"></script>
  <script>
    var a = $('.a') ;
    var b = $('.a').eq(1) ;
    var c = $('.a')[1);
    var d = $('.a').eq(1)[0];
    var f = $('.a')[0].eq(1);
  </script>
</body>
</html>

$('.a')  // Foi selecionado3a, todos são objetos jq (pode usar propriedades e métodos jq)

$('.a').eq(1) // Foi selecionado o segundo a, é um objeto jq (não pode usar propriedades e métodos dom, pode usar propriedades e métodos jq)

$('.a')[1]  // Foi selecionado o segundo a, é um objeto dom (pode usar propriedades e métodos dom, não pode usar propriedades e métodos jq)

$('.a').eq(1)[0]  // Foi selecionado o segundo a e convertido em objetos dom (pode usar propriedades e métodos dom, não pode usar propriedades e métodos jq)

-----Portanto, o jQuery encapsula novamente o js, as propriedades jq podem desencapsular para chamar propriedades dom, enquanto o dom não pode chamar métodos de propriedades jq.

$('.a')[0].eq(1) // Erro, pois o objeto dom não pode usar métodos jq, eq() é um método jq.

Isso é tudo que o editor trouxe para você sobre a discussão das diferenças entre eq() no jQuery e element.[] no DOM. Esperamos que você apoie e grite o tutorial ~

Você também pode gostar