0

I recently came across a problem with javascript I've never seen before.

I'll cut it short.

I'm trying to get all the images with class "small-thumbs" into an array:

var images = $('.small-thumbs');

but when I console.log(images) I get this -> w.fn.init [prevObject: w.fn.init(1)]

I tried to goole it but I couldn't find anything that could solve my problem, so if anyone could explain what this is and how to overcome it will be highly appreciated.

<?php 
    include_once 'includes/header.php';
 ?>

        <div class="col-10 product-page-container">
            <div class="more-images">
                <li id="1" class="all"><img src="assets/1.jpg" class="small-thumbs"></li>
                <li id="2" class="all"><img src="assets/2.jpg" class="small-thumbs"></li>
                <li id="3" class="all"><img src="assets/3.jpg" class="small-thumbs"></li>
                <li id="4" class="all"><img src="assets/4.jpg" class="small-thumbs"></li>
            </div>

            <div class="row">
              <div class="col-8">
                <img src="assets/image-name.jpg" id="main-product-image">

                <a class="prev">&#10094;</a>
                <a class="next">&#10095;</a>

              </div>
              <div class="col-4">
                <h2 id="product-title">Adidas NMD_R1 Shoes</h2>
                <p id="product-price">£109.99</p>
                <p id="product-color">Color
                    <li class="color"></li>
                    <li class="color"></li>
                    <li class="color"></li>
                </p>
                <p id="product-size">Size and Quantity</p>
                <div class="size">
                    <select id="size" class="custom-select">
                        <option selected>Select Size</option>
                        <option value="6.5">6.5</option>
                        <option value="7">7</option>
                        <option value="7.5">7.5</option>
                        <option value="8">8</option>
                        <option value="8.5">8.5</option>
                        <option value="9">9</option>
                        <option value="9.5">9.5</option>
                        <option value="10">10</option>
                    </select>
                </div>
                <div class="qty">
                    <select id="qty" class="custom-select">
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                        <option value="4">4</option>
                        <option value="5">5</option>
                        <option value="6">6</option>
                        <option value="7">7</option>
                        <option value="8">8</option>
                        <option value="9">9</option>
                        <option value="10">10</option>
                    </select>
                </div>

                <div class="clear"></div>
                <button class="btn btn-success add-to-bag-btn">Add to bag</button>
              </div>
            </div>

<?php 
    include_once 'includes/footer.php';
 ?>
selected
  • 124
  • 1
  • 2
  • 14

1 Answers1

6

$(".small-thumbs") is a jQuery collection, not an array. You can access it as an array-like object, but not everything treats it as an array; console.log shows the object itself.

You can use .get() to return a true array containing the elements in the collection.

console.log($(".small-thumbs").get());
Barmar
  • 596,455
  • 48
  • 393
  • 495