Debe haber algo obvio que estoy haciendo mal, pero no estoy viendo. He obtenido una referencia a un elemento de DOM con JQuery. Tiene las siguientes innerHTML (desde el depurador de javascript):

<INPUT type=hidden name=Item.ItemIndicators[0].Indicator.Strategies[0].Description> 
<INPUT style="DISPLAY: none" class=checkbox value=00000000-0000-0000-0000-000000000000 type=checkbox name=Item.ItemIndicators[0].Indicator.Strategies[0].Id> 
<INPUT value=-1 type=radio name=Item.ItemIndicators[0].Indicator.Strategies[0].Weight> 
<INPUT value=1 type=radio name=Item.ItemIndicators[0].Indicator.Strategies[0].Weight> 
<INPUT type=text150 name=Item.ItemIndicators[0].Indicator.Strategies[0].Description>

Sin embargo, cuando hago lo siguiente, me sale null.

var child = myElement.children(".checkbox");

Es «casilla de verificación» no permitido nombre de la clase, tal vez?

Gracias!

Para Matt, código completo a continuación:

  var strategies = parent.children("div.strategy");

   for (var i = 0; i < strategies.length; i++) 
   { 
          //strategies[i] is the element in question w/the innerHTML above
          var checkbox = strategies[i].children(".checkbox"); //returns null
          ...elided...
    } 

Información adicional: si hago lo siguiente, me sale «el objeto no admite esta propiedad o método»:

var strategy = strategies[i];
var children = strategy.children(); //object doesn't support this property or method

No está seguro de la terminología a utilizar aquí, pero a partir de las propiedades que se muestran en el depurador, y a partir de este error, parece que la estrategia de objeto no es visto por jquery como un objeto jquery, sino sólo como un elemento de dom (es decir, falta el [0] de la propiedad). Aún así, es extraño que la línea «estrategias[i].los niños(«.casilla de verificación»)» no tirar la misma excepción.

  • Vas a tener que dar más de código. Donde se myElement definido, por ejemplo?
  • he usado la casilla de verificación como un nombre de clase, no es que
  • TBH, ya que el código es feo. Just sayin’
  • Que es como IE escupe .innerHTML, no necesariamente su culpa 🙂
  • Gracias, Nick. Eso es correcto. Yo no escriba de esa manera.
  • el uso de XHTML como la sintaxis no resuelve nada? por ejemplo class=»checkbox» en lugar class=checkbox

InformationsquelleAutor sydneyos | 2010-08-09

1 Comentario

  1. 3

    Usted necesita para asegurarse de que usted está llamando a métodos jquery de jquery establece ajustado /objeto jquery.

    Puede lograr que el simple cambio en el código para algo como

     $(parent).children("div.strategy").each(function(i){
         var checkboxes = $(this).children(".checkbox"); 
         ...yourstuff ...
         //'this' refers to each strategy dom element
     }) ;

    Los niños es también una propiedad de los elementos DOM, por lo que podría estar causando confusión.

    • Impresionante, gracias. Yo había llegado a esa conclusión, pero implementado en un mucho cludgier manera.

Dejar respuesta

Please enter your comment!
Please enter your name here