Erreur JQuery: $ (“”) est null

Dépouillé d’une tonne de choses pour le rendre plus lisible, il jette une erreur sur la ligne:

$('[data-weight]').each(function() { 

Dire que c’est nul

      jQuery(document).ready(function() { $('[data-weight]').each(function() { var usingMesortingc = false; var $this = $(this); var value = $this.attr("data-weight"); if (usingMesortingc) { $this.text(value + " KG"); } else { value = parseFloat(value) * 2.20462262; // Convert to imperial $this.text(value + " lbs"); } }); });    
Product Details
800 KG

Mettre à jour

C’est un suivi de ma question:

Utiliser Javascript pour afficher des poids

Si vous utilisez le mode “aucun conflit” de jQuery, le problème peut être le suivant:

 jQuery(document).ready(function() { ^-- Consider adding $ here 

… ou utilisez jQuery plutôt que $ partout.

Si vous n’utilisez pas jQuery no-conflict, je ne vois pas pourquoi il y aurait un problème. Cela fonctionne très bien ici: http://jsbin.com/odaxa3 Les seules modifications que j’ai apscopes ont été de charger jQuery à partir du CDN de Google et de faire correspondre le poids de l’atsortingbut à l’affichage.

data-weight n’est pas un atsortingbut valide, avant HTML5. Pourquoi ne pas le faire de cette façon,

partie html,

 800 KG 

partie jQuery,

 jQuery(document).ready(function () { $('[class^="weight"]').each(function () { var usingMesortingc = false; var $this = $(this); var value = this.className.split('-')[1]; if (usingMesortingc) { $this.text(value + " KG"); } else { value = parseFloat(value) * 2.20462262; // Convert to imperial $this.text(value + " lbs"); } }); }); 

démo

Au lieu de convertir les unités, vous pouvez imprimer toutes les unités et afficher celle qui vous convient le mieux:

 800 kg / 1763 lbs 

Vous pouvez maintenant basculer entre les unités en affichant / masquant les éléments avec la mésortingque de classe / ‍ imperial :

 .units-separator { display: none } /* for mesortingc view */ .mesortingc { } .imperial { display: none } /* for imperial view */ .mesortingc { display: none } .imperial { } 

Et si CSS n’est pas pris en charge, les deux unités apparaissent comme suit:

800 kg / 1763 lb

Puis-je savoir, qu’est-ce que ‘data-weight’? Est-ce un identifiant de contrôle? S’il s’agit d’un identifiant de contrôle, vous devez donner:

 $('#data-weight').children().each(function() {... 

Ou

Le post suivant pourrait vous être utile:

Sélecteurs d’atsortingbuts jQuery: comment interroger un atsortingbut avec un espace de nom personnalisé