Maison  >  Article  >  interface Web  >  La différence entre $("#id") et document.getElementById("id") dans jquery

La différence entre $("#id") et document.getElementById("id") dans jquery

巴扎黑
巴扎黑original
2017-06-20 16:17:281990parcourir

Je pensais que $("#id") dans jquery et document.getElementByIdx_x("id") ont le même effet. effets spéciaux Ce n'est qu'à ce moment-là que j'ai découvert que ce n'était pas le cas. Grâce aux tests, j'ai obtenu :

1 alerte ($ ("#p")) obtenu [objet. Objet]

2. alert(document.getElementById("p")) obtient [object HTMLpElement]

3. alert($("#p")[0]) ou alert($("#p").get(0)) obtient [object HTMLpElement]

Interprétation de la raison :

document.getElementById() renvoie un Objet DOM, tandis que $() renvoie un objet jQuery

Qu'est-ce qu'un objet jQuery ?
---C'est l'objet généré en encapsulant l'objet DOM via jQuery. L'objet jQuery est unique à jQuery et peut utiliser des méthodes dans jQuery.

Par exemple :
$("#test").html() signifie : récupérer le code html dans l'élément avec l'ID test. Parmi eux, html() est une méthode dans jQuery
Ce code équivaut à utiliser DOM pour implémenter le code :
document.getElementById ("id" ).innerHTML;
Bien que Bien que les objets jQuery soient générés après avoir enveloppé des objets DOM, jQuery ne peut utiliser aucune méthode d'objets DOM. De même, les objets DOM ne peuvent pas utiliser de méthodes dans jQuery. Signaler une erreur. Par exemple : $("#test").innerHTML, document.getElementById("id").html() et d'autres méthodes d'écriture sont incorrectes.
Une autre chose à noter est que l'objet jQuery obtenu en utilisant #id comme sélecteur et l'objet DOM obtenu par document.getElementById("id") ne sont pas équivalents. Veuillez voir la conversion entre les deux ci-dessous.
Aussi Bien que jQuery soit différent mais également lié, alors l'objet jQuery et l'objet DOM peuvent également être convertis l'un en l'autre. Avant de convertir les deux, on donne d'abord une convention : si on obtient une paire jQuery Objet, puis on ajoute $ devant la variable, comme : var $variab = objet jQuery ; si l'objet DOM est obtenu, c'est comme d'habitude : var variab = Objet DOM ; cette convention est uniquement destinée à faciliter l’explication et la distinction, et n’est pas stipulée dans l’utilisation réelle.

Convertir un objet jQuery en objet DOM :
Deux méthodes de conversion convertissent un objet jQuery en objet DOM : [index] et
(1 )jQuery ; L'objet est un objet de données et l'objet DOM correspondant peut être obtenu via la méthode [index].
Par exemple : var $v =$("#v"); //objet jQuery
var v=$v[0]; //Objet DOM
alert(v.checked) //Détecter ceci Que la case soit cochée
(2) jQuery lui-même fournit, via la méthode .get(index), l'objet DOM correspondant est obtenu
Par exemple : var $v=$("#v"); /Objet jQuery
var v=$v.get(0); //Objet DOM
alert(v.checked) //Détecte si cette case est cochée

Objet DOM converti dans l'objet jQuery :
Pour un objet DOM, il vous suffit d'envelopper l'objet DOM avec $() pour obtenir un objet jQuery. $(Objet DOM)
Par exemple : var v=document.getElementById("v"); //Objet DOM
var $v=$(v); //objet jQuery
Après la conversion, vous N'hésitez pas à utiliser les méthodes de jQuery.
Grâce aux méthodes ci-dessus, vous pouvez arbitrairement convertir des objets jQuery et des objets DOM les uns aux autres. Ce qu'il faut souligner à nouveau, c'est que seuls les objets DOM peuvent utiliser des méthodes dans le DOM et que les objets jQuery ne peuvent pas utiliser de méthodes dans le DOM.

Voici d'autres méthodes d'utilisation associées :
1. Convertir un objet DOM en objet jQuery
Les objets Dom ordinaires peuvent généralement être convertis en objets jQuery via $().

Par exemple : $(document.getElementById("msg"))
Ce qui est renvoyé est l'objet jQuery et les méthodes jQuery peuvent être utilisées.

2. Convertissez l'objet jQuery en objet DOM
Parce que l'objet jQuery lui-même est une collection. Par conséquent, si l'objet jQuery doit être converti en objet Dom, l'un des éléments doit être récupéré, qui peut généralement être récupéré via un index.
Par exemple : $("#msg")[0], $("p").eq(1)[0], $("p").get()[1], $("td " )(5]

Ce sont des objets Dom. Vous pouvez utiliser des méthodes dans Dom, mais vous ne pouvez plus utiliser les méthodes jQuery.

Les méthodes d'écriture suivantes sont correctes :
$("#msg").html();
$("#msg")[0].innerHTML; #msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;

3. Deux méthodes pour obtenir l'objet : S'il existe

Par identifiant :

Document.getElementById('formid');

 $('#formid')

Par nom

 document.getElementsByName('formName')[ 0]

 $("form[name='formName']")

méthode inhérente à jquery :

document.getElementById() renvoie un objet DOM, tandis que $() renvoie un jQuery Objet

Qu'est-ce qu'un objet jQuery ?
---C'est l'objet généré en encapsulant l'objet DOM via jQuery. L'objet jQuery est unique à jQuery et peut utiliser des méthodes dans jQuery.

Par exemple :
$("#test").html() signifie : récupérer le code html dans l'élément avec l'ID test. Parmi eux, html() est une méthode dans jQuery
Ce code équivaut à utiliser DOM pour implémenter le code :
document.getElementById ("id" ).innerHTML;
Bien que Bien que les objets jQuery soient générés après avoir enveloppé des objets DOM, jQuery ne peut utiliser aucune méthode d'objets DOM. De même, les objets DOM ne peuvent pas utiliser de méthodes dans jQuery. Signaler une erreur. Par exemple : $("#test").innerHTML, document.getElementById("id").html() et d'autres méthodes d'écriture sont incorrectes.
Une autre chose à noter est que l'objet jQuery obtenu en utilisant #id comme sélecteur et l'objet DOM obtenu par document.getElementById("id") ne sont pas équivalents. Veuillez voir la conversion entre les deux ci-dessous.
Aussi Bien que jQuery soit différent mais également lié, les objets jQuery et les objets DOM peuvent également être convertis les uns aux autres. Avant de convertir les deux, on donne d'abord une convention : si on obtient une paire jQuery Objet, puis on ajoute $ devant la variable, comme : var $variab = objet jQuery ; si l'objet DOM est obtenu, c'est comme d'habitude : var variab = Objet DOM ; cette convention est uniquement destinée à faciliter l’explication et la distinction, et n’est pas stipulée dans l’utilisation réelle.

Convertir un objet jQuery en objet DOM :
Deux méthodes de conversion convertissent un objet jQuery en objet DOM : [index] et
(1 )jQuery ; L'objet est un objet de données et l'objet DOM correspondant peut être obtenu via la méthode [index].
Par exemple : var $v =$("#v"); //objet jQuery
var v=$v[0]; //Objet DOM
alert(v.checked) //Détecter ceci Que la case soit cochée
(2) jQuery lui-même fournit, via la méthode .get(index), l'objet DOM correspondant est obtenu
Par exemple : var $v=$("#v"); /Objet jQuery
var v=$v.get(0); //Objet DOM
alert(v.checked) //Détecte si cette case est cochée

Objet DOM converti dans l'objet jQuery :
Pour un objet DOM, il vous suffit d'envelopper l'objet DOM avec $() pour obtenir un objet jQuery. $(Objet DOM)
Par exemple : var v=document.getElementById("v"); //Objet DOM
var $v=$(v); //objet jQuery
Après la conversion, vous N'hésitez pas à utiliser les méthodes de jQuery.
Grâce aux méthodes ci-dessus, les objets jQuery et les objets DOM peuvent être convertis les uns aux autres à volonté. Ce qu'il faut souligner à nouveau, c'est que seuls les objets DOM peuvent utiliser des méthodes dans le DOM et que les objets jQuery ne peuvent pas utiliser de méthodes dans le DOM.

Voici d'autres méthodes d'utilisation associées :
1. Convertir un objet DOM en objet jQuery
Les objets Dom ordinaires peuvent généralement être convertis en objets jQuery via $().

Par exemple : $(document.getElementById("msg"))
Ce qui est renvoyé est l'objet jQuery et les méthodes jQuery peuvent être utilisées.

2. Convertissez l'objet jQuery en objet DOM
Parce que l'objet jQuery lui-même est une collection. Par conséquent, si l'objet jQuery doit être converti en objet Dom, l'un des éléments doit être récupéré, qui peut généralement être récupéré via un index.
Par exemple : $("#msg")[0], $("p").eq(1)[0], $("p").get()[1], $("td " )(5]

Ce sont des objets Dom. Vous pouvez utiliser des méthodes dans Dom, mais vous ne pouvez plus utiliser les méthodes jQuery.

Les méthodes d'écriture suivantes sont correctes :
$("#msg").html();
$("#msg")[0].innerHTML; #msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;

3. Deux méthodes pour obtenir l'objet : S'il existe

Par identifiant :

Document.getElementById('formid');

 $('#formid')

Par nom

  document.getElementsByName('formName')[0]

$("form[name='formName']")

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn