Question

Pourquoi ai-je:

  

Uncaught TypeError: Object # n'a pas de méthode   « Trouver » (anonyme   fonction): 8080 / twolittlesheep / js / sizeColorDependancy.js: 16   c.event.handleajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js:63   c.event.add.h.handle.oajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js:56

lorsque je tente de lancer un simple script jquery Le script tombe à la ligne où j'utilise la méthode de recherche dans l'extrait de code suivant jquery:

$(document).ready(function(){
  $("select#p_sizesId").change(function(){
   var $colorsSelect = $("select#p_colorsId")[0];
   $("select#p_colorsId")[0].find('option').remove().end().append('<option selected="selected" value="whatever">text</option>');
  });
});

Dans ma balise head dans le code HTML je:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<%-- <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> --%>
<script type="text/javascript" src="js/sizeColorDependancy.js"></script>

J'utilise Google Chrome (avec les outils de développement).

Tout ce que je trouve comme une explication dans un autre thread est que lorsque vous utilisez les outils de développement de Chrome, le problème se pose. Mais je courais le code sans utiliser les outils de développement et le même produit (le script ne fait rien => l'erreur).

Cordialement,
Despot

Était-ce utile?

La solution

Lorsque vous [0] vous obtenez le premier élément les matches de sélection comme un élément DOM, pas un objet jQuery qui a .find(), il suffit de retirer ce [0], comme ceci:

$(document).ready(function(){
  $("#p_sizesId").change(function(){
   $("#p_colorsId").find('option').remove().end().append('<option selected="selected" value="whatever">text</option>');
  });
});

Quelques autres notes, lors de l'utilisation d'un sélecteur de #id, faites-le préfixe pas, sauf si absolument nécessaire, il ralentit les choses. En outre, depuis les ID doivent être uniques, il devrait pas besoin pour obtenir le premier élément ... le sélecteur ne doit correspondre à 1 ou 0 éléments ... s'ils sont pas unique ne pas utiliser ID ... cours d'utilisation.

Autres conseils

Il suffit d'en faire un objet jQuery comme ceci:

$($("select#p_colorsId")[0]).find('option')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top