Estoy tratando de hacer que solo algunos cuadros específicos tengan relleno a la izquierda y a la derecha, pero el código no pasa la parte "getElementByClassName". Recibo la alerta "Test1" pero no "Test2", por lo que creo que el problema está en algún lugar de esa línea.
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script type="text/javascript" > var numProducts = $('.product').length; for(var i = 1;i<numProducts;i++){ var x = (i+1)/3; if(x%1=0){ alert("test1"); var box = document.getElementByClassName('product')[i-1]; alert("test2"); box.style.paddingRight ="30px"; box.style.paddingLeft="30px"; } } </script>
Obtengo los valores correctos de numProducts, i y x, por lo que no creo que sean el problema. ¿Que se supone que haga? Gracias
Lo que esperaba debería ser document.getElementsByClassName
en lugar de document.getElementByClassName
.
La siguiente es mi versión de su script. Recomendaría que realmente use jQuery, ya que claramente ya lo ha cargado. Y usar jQuery significa que algo como document.quersSelectorAll()
ya no es necesario.
$('.product').each(function(i){ i%3==2 && $(this).addClass("padded") })
.padded {padding-right:30px; padding-left:30px;}
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <div class="product">a</div> <div class="product">b</div> <div class="product">c</div> <div class="product">d</div> <div class="product">e</div> <div class="product">f</div> <div class="product">g</div> <div class="product">h</div> <div class="product">i</div>