Méthodes JQuery et propriétés DOM

Je suis confus quant à quand je peux utiliser les propriétés DOM et quand je pourrais utiliser les méthodes Jquery sur un objet Jquery. Dis, j'utilise un sélecteur

var $elemSel = $('#myDiv').find('[id *= \'select\']') 

À ce stade, $ elemSel est un objet jquery que je comprends être un wrapper autour de la gamme d'éléments DOM. Je pourrais obtenir une référence aux éléments DOM en itérant via l'objet / tableau $ elemSel (Correct?)

Mes questions: 1. Existe-t-il un moyen de convertir ce $ elemSel en un ensemble régulier non JQuery d'éléments DOM? 2. Puis-je combiner les propriétés DOM et les méthodes JQuery en même temps (quelque chose comme ça)

 $elemSel.children('td').nodeName 

(NodeName est DOM, les enfants sont liés à JQuery)

EDIT: Qu'est-ce qui ne va pas avec ça?

 $elemSel.get(0).is(':checked') 

EDIT 2:

Merci pour les réponses. Je comprends maintenant que je peux utiliser le get (0) pour obtenir un élément DOM. Questions supplémentaires:

  1. Comment convertir un élément DOM en un objet JQuery?

  2. Si j'attache "ceci" à une variable, est-ce que ce nouveau var DOM ou JQuery? Si c'est JQuery, comment puis-je convertir cela en un élément DOM? (Puisque je ne peux pas utiliser get (0))

    Var $ elemTd = $ (this);

  3. Lorsque je fais une affectation comme celle ci-dessus, j'ai vu certains exemples de code, et ne comprennent pas le signe $ pour le nom de la variable. Pourquoi?

  4. Et quant à ma question initiale, puis-je combiner simultanément les propriétés DOM et les fonctions JQuery sur un objet JQuery?

    $ ElemSel.children ('td'). NodeName

Vous devrez .get (0) le résultat pour obtenir l'objet prêt à DOM.

 var myBox = $("div#myBox"); alert(myBox.get(0).id); // "myBox" 

Lisez " Peeling Away the jQuery Wrapper and Finding a Array " de Cody Lindley


Re: Edit: .is() n'est pas une méthode javascript native. Lorsque vous exécutez .get(0) , vous ne .get(0) plus sur l'objet jQuery, vous ne pouvez donc pas espérer exécuter des méthodes jQuery.

Si vous souhaitez exécuter .is() sur un résultat spécifique, utilisez le :eq(index) selector ou la .eq(index) method :

 $("div:eq(1)").is(":checked"); // gets second div $("div").eq(1).is(":checked"); // gets second div 

Re: Edit # 2

Bob, vous devriez vraiment créer de nouvelles questions, plutôt que de demander de plus en plus ici.

La conversion d'un élément dom en objet jquery se fait en le passant dans un sélecteur:

 var myBox = document.createElement("div"); var myBoxJQ = $(myBox); 

Assurer This à une variable. Dépend de quand vous le faites. Si par "ceci" vous faites référence à un objet jQuery, this sera un objet jQuery. Vous pouvez le convertir en suivant this avec .get(0) .

Lorsque this se réfère à un objet jQuery, vous n'avez pas besoin de l'envelopper dans $ (). Ceci est redondant.

Enfin, $elemSel.children('td').nodeName peut se faire comme $elemSel.children('td')[0].nodeName : $elemSel.children('td')[0].nodeName ou $elemSel.children('td').get(0).nodeName , où 0 est l'index de l'élément à accéder.

Il existe également un raccourci pour la fonction get (index):

 $(selector)[0].nodeName 

Soruce: http://docs.jquery.com/Core/get#index

Parce qu'il peut y avoir plus d'une correspondance dans les sélecteurs jQuery, vous devez retirer les éléments du "tableau".

Vous pouvez utiliser la méthode get pour renvoyer un seul élément DOM ou un tableau ou des éléments DOM.

par exemple:

 var elims = $("div").get(); for(var i in elims) alert(elims[i].nodeName); 

Modifier:

$elemSel.get(0).is(':checked') ne fonctionnera pas parce que vous obtenez l'objet Dom et que vous essayez d'utiliser les fonctions jQuery. Si vous souhaitez obtenir un élément jQuery unique, utilisez l' équation .

 $elemSel.eq(0).is(':checked'); 

Pour appeler la méthode DOM native, vous pouvez utiliser get (index). Ou si vous souhaitez utiliser la méthode jQuery Object, vous devez envelopper un élément DOM natif avec jQuery, qui convertira l'élément DOM en un objet jQuery, de sorte que toutes les méthodes seront disponibles. http://www.linxinshan.com/?p=339