190 votes

Comment faire pour obtenir un élément DOM à partir d’un sélecteur JQuery

Je vais avoir un temps incroyablement dur savoir pour obtenir le DOMElement réelle d’un sélecteur jquery. Exemple de Code :

et dans un autre morceau de code je suis en train de déterminer la valeur checked de la case à cocher.

Et s’il vous plaît, je ne veux pas faire :

Qu’obtenir de moi autour de la case à cocher, mais d’autres fois j’ai besoin le real DOMElement.

283voto

cletus Points 276888

Vous pouvez accéder à la crue de l'élément DOM avec:

$("table").get(0);

ou plus simplement:

$("table")[0];

Il n'y a pas vraiment beaucoup vous en avez besoin pour cependant (dans mon expérience). Prenez votre case exemple:

$(":checkbox").click(function() {
  if ($(this).is(":checked")) {
    // do stuff
  }
});

c'est plus "jquery new'ish" et (à mon humble avis) plus concis. Et si vous vouliez nombre?

$(":checkbox").each(function(n, i) {
  $(n).data("index", i);
});
$(":checkbox").click(function() {
  if ($(this).is(":checked") && $(this).data("index") == 0) {
    // do stuff
  }
});

Certaines de ces fonctionnalités permettent également d'masque des différences dans les navigateurs. Certains attributs peuvent être différentes. L'exemple classique est celui des appels AJAX. Pour ce faire correctement en raw Javascript a propos de 7 cas de secours pour XmlHttpRequest.

8voto

eduncan911 Points 5417

Edit : semble que je me suis trompé en supposant que vous ne pourriez pas obtenir l’élément. Que d’autres ont posté ici, vous pouvez faire avec :

J’ai vérifié que cela retourne en fait l’élément DOM qui a été mis en correspondance.

6voto

Chad Hedgcock Points 2198

J’avais besoin obtenir l’élément sous forme de chaîne.

Qui vous donnera quelque chose comme :

.. .comme une chaîne plutôt qu’un élément DOM.

1voto

James Black Points 26183

Si vous avez besoin d'interagir directement avec l'élément du DOM, pourquoi ne pas simplement utiliser document.getElementById depuis, si vous essayez d'interagir avec un élément spécifique, vous le savez probablement, l'id, en supposant que le nom de classe est sur un seul élément ou une autre option tend à être risqué.

Mais, j'ai tendance à être d'accord avec les autres, que dans la plupart des cas vous devriez apprendre à faire ce que vous avez besoin de l'aide de ce que jQuery vous donne, car il est très flexible.

Mise à JOUR: Basé sur un commentaire: Voici un post avec une belle explication: http://www.mail-archive.com/jquery-en@googlegroups.com/msg04461.html

$(this).attr("checked") ? $(this).val() : 0

Ce sera le retour de la valeur si elle est cochée, ou 0 si elle ne l'est pas.

$(this).val() est atteint dans les dom et à l'obtention de l'attribut "value" de l'élément, qu'il soit ou non vérifiée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X